一个正整数的数字根是指该数字各位数字之和,如果和是一个个位数,那么这个数字就是它的数字根,如果和是个两位或多于两位的数字,那么就继续求和直到得到个位数。<br />例如:数字24,把2和4相加,得到6,那么6就是24的数字根;又比如数字39,把数字3和9相加,得到12,因为12时是两位数,所以继续把1和2相加,得到3,于是3就是39的数字根
#include<iostream>
using namespace std;
int temp;
int function(int num)
{
while (num!=0)
{
temp +=num%10;
num /=10;
}
if (temp>=10)
{
num=temp;
temp=0;
function(num);
}
return temp;
}
int main(int argc,char *argv[])
{
int num;
while (cin>>num)
{
temp=0;
temp=function(num);
cout<<temp<<endl;
}
return 0;
}
如果数字有2000位的话,可以用字符的形式来表示:
#include<iostream>
using namespace std;
int temp;
char num[2001];
int function(int num)
{
while (num!=0)
{
temp +=num%10;
num /=10;
}
if (temp>=10)
{
num=temp;
temp=0;
function(num);
}
return temp;
}
int main(int argc,char *argv[])
{
int length,i,j;
while (cin>>num&&num[0]!='0')
{
temp=0;
i=0;
length=strlen(num);
while (i<length)
{
temp =function(num[i]-'0');
i++;
}
cout<<temp<<endl;
}
return 0;
}
本文介绍了一种计算数字根的方法,适用于任意长度的正整数,包括使用字符数组处理大数的情况。通过递归调用函数实现对数字的多次求和直至得到个位数。同时,提供了对大数的字符形式输入处理方式,确保算法适用于不同规模的数据处理需求。
4959

被折叠的 条评论
为什么被折叠?



