C++数根求代码帮忙写下代码,C++的!数根可以通过把一个数的各个位上的数字加起来得到.如果得到的数是一位数,那么这个数

1个回答

  • />#include

    using namespace std;

    int main()

    {

    int N;

    char num[1010];//用一个字符串存储读入的整数,多开10位以防越界

    int answer=0;//答案,因为1000位数每位相加最大为9000,所以开一个int足够

    cin>>N;

    while(N--)

    {

    for(int i=0;i<1010;i++)//初始化num为0,注意是ASCII码的0,而不是数字0,用于判断字符串结尾,当然这只是保险起见,去掉这个初始化也是没有问题的

    num[i]=0;

    answer=0;

    cin>>num;

    //x09cout<

    for(int i=0;i<1010;i++)//第一次计算answer值

    {

    if(num[i]==0)//读完则退出

    break;

    answer+=(num[i]-'0');//注意减去‘0’,这是将ASCII码转成对应数字

    }

    //x09cout<

    while(answer<0 || answer>9)//判断是否为1位数,不是则继续操作

    {

    int tmp=answer;

    answer=0;

    while(tmp>0)

    {

    answer+=tmp%10;//取出低位

    tmp/=10;

    }

    }

    cout<

    }

    system("pause");//VS调试暂停用,提交代码请删掉

    return 0;

    }

相关问题