鱼C论坛

 找回密码
 立即注册
查看: 13461|回复: 6

正整数的各位数字之和被Tom称为Tom数。求输入数(<2^32)的Tom数!

[复制链接]
发表于 2013-3-9 21:48:31 | 显示全部楼层 |阅读模式
2鱼币
#include <stdio.h>
void main()
{
    int num = 0,i = 0,we = 1,res  = 0;
    scanf("%d",&num);
    while(num/10!=0)
    {
        we++;
        num = num /10;
    }
    for(i=1;i<=we;i++)
    {
        res = res + num%10;
        num = num /10;
    }
    printf("%d\n",res);
}请高手们看哈哪里错了 ,我觉得是对的 ,为什么输出来的是第一个数,1%10=1对吧?1/10=0是吧?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-9 22:45:29 | 显示全部楼层
你的num早在while循环里就变的只有各位数了,能对吗,可以直接在while循环里就能算出结果的,干嘛多此一举
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-9 23:37:59 | 显示全部楼层
num在while循环里面就已经被改变了(而且你取位数的方法也不对,最高位根本去不下来,(比如说123,取到最高位1时因为1/10==0直接跳出了while循环)),
再到for循环里面是被改变的值(1)进行计算了,所以出来的结果一定是最高位来着。这个代码我小改下就能用的,但我认为这并
不很科学

#include <stdio.h>
void main()
{
    int num = 0,i = 0,we = 1,res  = 0, t=0;
    scanf("%d",&num);
    t=num;
    while(num/10!=0)
    {
        we++;
        num = num /10;
    }
    for(i=1;i<=we;i++)
    {
        res = res + t%10;
        t = t /10;
    }
    printf("%d\n",res);
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-10 16:21:42 | 显示全部楼层
不知道你的所谓Tom数是不是就是个十百千各个位的数值相加,如果是的话你的逻辑有点问题哦,
下面是修改代码:vs2008
#include <stdio.h>
void main()
{
    int num = 0,i = 0,we = 1,res  = 0;
        int nRemainder = 0;
    scanf("%d",&num);
    while(num/10!=0)
    {
       // we++;
                nRemainder = num%10;
                num = num /10;
                res +=  nRemainder;
     }
        res += num;

    printf("%d\n",res);
        getchar();
        getchar();
}
1.bmp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-3-10 17:07:56 | 显示全部楼层

我知道,我初始化时we=1,就是num在while循环里面就已经被改变了,这里忽略了!!!谢谢你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-3-13 14:47:48 | 显示全部楼层
你的num早在while循环里就变的只有各位数了,能对吗,可以直接在while循环里就能算出结果的,干嘛多此一举
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-9-1 09:42:03 | 显示全部楼层
帮顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 02:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表