首页 > 代码库 > rwkj 1332 C语言实验四(函数):题目1、数字根
rwkj 1332 C语言实验四(函数):题目1、数字根
C语言实验四(函数):题目1、数字根
总提交:305 测试通过:185
描述
正整数的数字根是将数位上的数字求和进行计算而来。如果各位数字之和为一位的整数,那么这个整数就是这个数的数字根;如果之后为多位数,那么重复运用此规则进行计算直至求出一个一位数。例如12,那么它的数字根就为1+2=3;例如39那么它的数字根就为3+9=12,1+2=3,最终为3。
输入
每行输入一个正整数,输入0表示结束。
输出
输出一个一位数。
样例输入
24
39
0
样例输出
6
3
#include <stdio.h>int f(int x){ int s=0; while (x) { s=s+x%10; x=x/10; } return s;}int main(){ int x; while( scanf("%d",&x)==1 && x) { while (x>10) x=f(x); printf("%d\n", x); } return 0;}
int f(int x)
{
int s=0;
while (x)
{ s=s+x%10; x=x/10; }
return s;
}
int main()
{
int x;
while( scanf("%d",&x)==1 && x)
{
while (x>10)
x=f(x);
printf("%d\n", x);
}
return 0;
}
#include<stdio.h>int main(){ int a=0,n; while(scanf("%d",&n)!=EOF) { while(n>9) { if(n>9) { a=n%10; n/=10; n+=a; } } if(n==0) printf(""); else printf("%d\n",n); }}
#include<stdio.h>
int main()
{
int a=0,n;
while(scanf("%d",&n)!=EOF)
{
while(n>9)
{
if(n>9)
{
a=n%10;
n/=10;
n+=a;
}
}
if(n==0)
printf("");
else
printf("%d\n",n);
}
}
#include <iostream>using namespace std;int f(int x){ int s=0; while (x) { s=s+x%10; x=x/10; } if (s>9) return f(s); else return s;} int main(int argc, char *argv[]){ int x,y; while (cin>>x) {if(x==0) ; else cout<<f(x)<<endl; }}
#include <iostream>
using namespace std;
int f(int x)
{
int s=0;
while (x)
{
s=s+x%10;
x=x/10;
}
if (s>9) return f(s);
else return s;
}
int main(int argc, char *argv[])
{
int x,y;
while (cin>>x)
{if(x==0) ;
else cout<<f(x)<<endl;
}
}