1109 根数

题目来源:
https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1109

Description
 输入一个正整数,输出该数的数根。数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数根。 
要求使用函数,定义函数digitSum(int n)求n的各位数字和,其余功能在main()函数中实现。 
int digitSum(int n) 

//函数返回n的各位数字之和 

Input
输入一个int范围内的正整数n

Output
 输出n的数根
Sample Input
39
Sample Output
3

题意描述:
输入正整数n(int 范围内)
如果n为个位数输出n,否则计算各位数字的和,直到数字是一个个位数输出

解题思路:
递归调用digitSum()函数输出n各位数字之和,直到返回值是一个个位数为止

程序代码:

 1 #include<stdio.h>
 2 int digitSum(int n);
 3 int main()
 4 {
 5     int n;
 6     while(scanf("%d",&n) != EOF)
 7     {
 8         printf("%d\n",digitSum(n));
 9     }
10     return 0;
11 }
12 int digitSum(int n)
13 {
14     int i,sum=0;
15     if(n>=10)
16     {
17         while(n)
18         {
19             sum += n%10;
20             n /= 10;
21         }
22         return digitSum(sum);
23     }
24     else
25     return n;
26 }

易错分析:
注意不是简单计算n的各位数字之和

时间: 2024-12-27 23:44:25

1109 根数的相关文章

1109 01组成的N的倍数

1109 01组成的N的倍数 基准时间限制:1 秒 空间限制:131072 KB 给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1.求最小的M. 例如:N = 4,M = 100. Input 输入1个数N.(1 <= N <= 10^6) Output 输出符合条件的最小的M. Input示例 4 Output示例 100和http://www.cnblogs.com/zzuli2sjy/p/5731745.html一样: 1 #includ

1109: 零起点学算法16——鸡兔同笼

1109: 零起点学算法16--鸡兔同笼 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 4456  Accepted: 1355[Submit][Status][Web Board] Description 鸡和兔关在同一笼子中,已知总数量n和腿的总数量m,求鸡的数量和兔的数量. Input 输入2个整数分别是n和m(多组测试数据) Output 输出鸡的数量和兔的数量,中间用空格隔开,如果无解则

ural 1109,NYOJ 239,匈牙利算法邻接表

NYOJ 239:http://acm.nyist.net/JudgeOnline/problem.php?pid=239 ural 1109 :http://acm.timus.ru/problem.aspx?space=1&num=1109 NYOJ 月老的难题,是裸的最大匹配,很烦的是邻接阵超时.改用邻接表. #include <bits/stdc++.h> using namespace std; #define maxn 1005 vector <int> G[m

HDU 1109

http://acm.hdu.edu.cn/showproblem.php?pid=1109 一个范围内给一堆点,求到这些点的最短距离最大 模拟退火,温度是步长 #include <iostream> #include <cstdio> #include <cstring> #include <map> #include <ctime> #include <cmath> using namespace std ; const doub

51 nod 1109 01组成的N的倍数

1109 01组成的N的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1.求最小的M. 例如:N = 4,M = 100. Input 输入1个数N.(1 <= N <= 10^6) Output 输出符合条件的最小的M. Input示例 4 Output示例 100 思路:同上题. #include<queue> #inclu

BZOJ 1109: [POI2007]堆积木Klo

Sol 排序+树状数组. 我们要找一个满足下列条件的最长序列. \(j-w[j]<=i-w[i],j<i,w[j]<w[i]\) 就是维护一个偏序集的最长上升子序列,然后第一个和第三个式子加起来可以推出第二个式子,然后就是二维偏序,用树状数组来维护就可以了. Code /************************************************************** Problem: 1109 User: BeiYu Language: C++ Result:

错误代码: 1109 Unknown table &#39;ename&#39; in MULTI DELETE

1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:delete a.ename from emp 错误代码: 1109 Unknown table 'ename' in MULTI DELETE 执行耗时 : 0 sec 传送时间 : 0 sec 总耗时 : 0 sec 2.错误原因 删除数据库表中的记录,直接删除字段 DELETE a.ename FROM emp; 这样不符合SQL语句语法 3.解决办法 删除数据库表中

hihoCoder #1109 最小生成树之堆优化的Prim算法

原题地址:http://hihocoder.com/problemset/problem/1109 #1109 : 最小生成树三·堆优化的Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 回到两个星期之前,在成功的使用Kruscal算法解决了问题之后,小Ho产生了一个疑问,究竟这样的算法在稀疏图上比Prim优化之处在哪里呢? 提示:没有无缘无故的优化! 输入 每个测试点(输入文件)有且仅有一组测试数据. 在一组测试数据中: 第1行为2个整数N.M,表示小

51Nod 1109 01组成的N的倍数

1109 01组成的N的倍数 准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1.求最小的M. 例如:N = 4,M = 100. Input 输入1个数N.(1 <= N <= 10^6) Output 输出符合条件的最小的M. Input示例 4 Output示例 100 找一个数,应该就是搜索 一开始 我写了priority_queue 但是他