| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 525 人关注过本帖
标题:数字根的问题
只看楼主 加入收藏
木槿花谢
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-10-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
数字根的问题
程序代码:
#include <stdio.h>
int main()
{
    int i,j,k[10],l,n=1,sum=0;
    printf("请输于一个数");
    scanf("%d",&l);
    for(i=0;(l%(10*n))!=0;i++)
    {
        do
        {
            k[i]=l%(10*n);
            n++;
        }while(l%(10*n)==0);
        if(l%(10*n)==0)
        {
            k[i]=l/(10*(n-1));
        }
          
    }
  
    while(1)
    {
        for(i=0;l%(10*n)==0;i++)
        {
            sum+=k[i];
        }
        if(sum<10)
        {
            printf("数根为%d",sum);
            break;
        }
          
    }
    return 0;
}
响了很久了,也不知道哪错了,编译能通过

数字根是指对一个整数,把它的各位数字相加,若其和为一位数,则此和即为其根,若不是一位数字,则把它的各位数字继续相加,直到其和为一个正整数为止。例如对于正整数24,因为2+,和为1位数,所以6即为其根。对于39,因为3+12,和不为个位数,继续相加,,3为个位数,则为数字的根。要求输入若干个正整数,以0为结束,输出每个正整数的根。
2013-08-28 11:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:10 
你的算法我连蒙带猜也猜不出,你的脑子够混乱的,我帮你写一个吧
程序代码:
#include <stdio.h>

unsigned foo( unsigned n )
{
    while( n > 9 )
        n = n%10 + n/10;
    return n;
}

int main()
{
    printf( "%u 根为 %u\n", 2, foo(2) );
    printf( "%u 根为 %u\n", 24, foo(24) );
    printf( "%u 根为 %u\n", 39, foo(39) );
    printf( "%u 根为 %u\n", 123456789, foo(123456789) );

    return 0;
}

2013-08-28 11:56
木槿花谢
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-10-23
收藏
得分:0 
回复 2楼 rjsp
谢谢版主
2013-08-28 13:24
快速回复:数字根的问题
数据加载中...
 
   



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

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