| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 861 人关注过本帖
标题:杭电1013帮忙看下,哪里问题
取消只看楼主 加入收藏
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:2 
杭电1013帮忙看下,哪里问题
程序代码:
Digital Roots
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 36662    Accepted Submission(s): 11228

Problem Description
The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two or more digits, those digits are summed and the process is repeated. This is continued as long as necessary to obtain a single digit.
For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24. Now consider the positive integer 39. Adding the 3 and the 9 yields 12. Since 12 is not a single digit, the process must be repeated. Adding the 1 and the 2 yeilds 3, a single digit and also the digital root of 39.


Input
The input file will contain a list of positive integers, one per line. The end of the input will be indicated by an integer value of zero.


Output
For each integer in the input, output its digital root on a separate line of the output.


Sample Input
24
39
0
Sample Output
6
3
我的代码如下:

#include <stdio.h>

int main() {
    int n, sum, count, t, i, a[100];
    while(scanf("%d", &n) != EOF && n > 0) {
        count = 0; i = 0;
        t = sum = n;
        loop : while(t) {
            count++;
            a[i++] = t % 10;
            t /= 10;
        }
        while(sum >= 10) {
            t = 0;
            for(i = 0; i < count; i++) t += a[i];
            sum = t, count = i = 0;
            goto loop;
        }
        printf("%d\n", sum);
    }
    return 0;
}
//简单说下题意如
3 = 3
33 = 3 + 3 = 6
333 = 3 + 3 + 3 = 9
3333 = 3 + 3 + 3 + 3 = 12 = 1 + 2 = 3
搜索更多相关主题的帖子: single positive digital Java 
2013-04-12 13:25
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
收藏
得分:0 
有么?给个传送看看....没找到
2013-04-12 18:14
Buger
Rank: 1
等 级:新手上路
帖 子:60
专家分:7
注 册:2013-3-20
收藏
得分:0 
以下是引用azzbcc在2013-4-12 15:07:08的发言:

或许数据太大,int装不下吧,这道题没必要存数据啊,边读边计算就行
应该够大了吧?  我看到好多人都是边读边计算的,但是我偏偏没那么做,将一个很大很大的数拆开加起来,看了下好像不怎么大了...主要我想弄清楚我的问题在哪里?
2013-04-12 18:39
快速回复:杭电1013帮忙看下,哪里问题
数据加载中...
 
   



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

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