文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>O(∩_∩)O~,关于一道面试题的分析与解答

O(∩_∩)O~,关于一道面试题的分析与解答

时间:2011-03-08  来源:hailong

给大家分享一下我第一次参加面试时的一个题目:

问题:对于任意一个正整数 N,按以下操作把它转化为一个单一数字(大于 0 小于 10的数):

把 N 的各位上数字相加,若得到的结果不是一个单一数字,就把结果的各位上的数字相加,

若得到的结果还不是一个一位数,就还把结果的各位上的数字相加,

……

直到结果为一个单一数字为止。

如:2345

2+3+4+5=14

1+4=5 结果就为 5。

请写出一个方法,当传入任意一个正整数时,返回它按以上操作所得到的单一数字。



这个是刚才一个网友贴出来的,我也想了个方法,就是先把数字转换成string,然后再进行出来,总之就是转来转去吧,代码还是比较少的:

#include <iostream>
#include <string>
#include <strstream>
using namespace std;
string get_string(int N)
{
   strstream ss;
   string s;
   ss << N;
   ss >> s;
   return s;
}
int main()
{
        int N;
        cout << "please input the integral number N : ";
        cin >> N;
    do 
    {
                string s = get_string(N);
                int sum = 0;
                for (size_t i = 0; i < s.size(); ++i)
                {
                        sum += s[i]-'0';
                }
                N = sum;
    } while (N >= 10);
    cout << N << endl;
    
}
相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载