| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:一道ACM的题
只看楼主 加入收藏
为宇纠结
Rank: 2
等 级:论坛游民
帖 子:17
专家分:11
注 册:2010-11-4
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:2 
一道ACM的题
一个正整数的数字根是在相加整数数字的时候被发现。如果得到的结果是单位数,那么这个单位数就是他的数字根。如果这个结果是二位数或数位更多的数,这些数字将被再次相加,这个相加的过程会被重复,直到得出的结果是单位数为止。
举个例子,加入这个正整数是24. 2加4等于6. 6是个单位数,那么6就是24的数字根。另外的一个正整数39.3加上9等于12. 12不是单位数,这个相加的过程将被重复。1加上2等于3. 3是个单位数,也就是39的数字根。
输入的内容就是一列的正整数,一个一行。在结尾,输入一个0,表示输入结束。
算出所输入数字的数字根。
Example 例子

Input 输入
24
39
0
Output 输出
6
3
搜索更多相关主题的帖子: 正整数 
2011-03-20 21:41
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:10 
程序代码:
#include<stdio.h>
int main(void)
{
    int i,n,sum;
    char s[1000];
    while(gets(s),s[0]!='0'){
        n=sum=0;
        for(i=0;s[i]!='\0';i++){
            n+=(s[i]-'0');
        }
        while(n){
           sum+=n%10;
           n/=10;
        }
        printf("%d\n",sum);
    }
    return 0;
}随手写的不知道对不对

免费赠送河蟹一只
2011-03-20 22:39
『点点滴滴』
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:168
专家分:1035
注 册:2007-7-9
收藏
得分:10 
#include <stdio.h>
int main()
{
    int n , sum , ch ;
    while( 1 )
    {
        n = 0 ;
        while( ( ch = getchar() ) != '\n' )
        {
            n = n * 10 + ( ch - '0' ) ;
        }
        if( n == 0 )
            break ;
        while( 1 )
        {
            sum = 0 ;
            while( n )
            {
                sum += n % 10 ;
                n /= 10 ;
            }
            if( sum / 10 == 0 )
                break ;
            else
                n = sum ;
        }
        printf("%d\n", sum ) ;
    }
    return 0 ;
}
2011-03-21 09:00
快速回复:一道ACM的题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015429 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved