工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 4437|回复: 49

【1W饭票的题目】:求数字各位和

[复制链接]
发表于 2006-11-18 19:35 | 显示全部楼层 |阅读模式

【内容】输入一个整数,计算其各位的和,直到结果为一位数.
如552. 比如552过程为 552-->12-->3

【要求】编程实现.

【饭票】一万,用的方法越多,得到的奖励也越多


[ 本帖最后由 hjack 于 2006-11-20 00:39 编辑 ]
发表于 2006-11-18 20:09 | 显示全部楼层
1927
19
10
1
回复

使用道具 举报

发表于 2006-11-18 20:11 | 显示全部楼层
100w就考虑做:time::time:
回复

使用道具 举报

发表于 2006-11-25 15:15 | 显示全部楼层
后院BETA   

先不进行操作了。。。
等稳定了再说
回复

使用道具 举报

发表于 2006-11-27 09:29 | 显示全部楼层
把整数转成String操作,  会好点,  试试看

public class Test {
        
        public static long sumNum(long n){
                String str = String.valueOf(n);
                String strSum = "";
                long sum = 0;
               
                for(int i = 0; i < str.length(); i++){
                        strSum = str.substring(i, i+1);                        
                        sum = sum + Long.parseLong(strSum);
                }               
                return sum;
        }

        public static void main(String[] args) {
                long n = 552;
               
                do{        
                        System.out.print(n);
                        n = sumNum(n);
                        
                        if(n >= 10){
                                System.out.print("->");
                        }else{
                                System.out.print("->"+n);
                        }
                        
                }while(n>=10);                        
        }
}

[ 本帖最后由 weechou 于 2006-11-27 09:30 编辑 ]
回复

使用道具 举报

发表于 2006-11-27 17:57 | 显示全部楼层
#include<stdio.h>
int main()
{
long number;
printf("please input a number:");
scanf("%ld",&number);
printf("all bit number + is %d\n",number==0?0:(number%9?number%9:9) );
printf("1W,^_^~~~~");
return 0;
}

[ 本帖最后由 10JQKA 于 2006-11-28 00:09 编辑 ]
回复

使用道具 举报

发表于 2006-12-8 18:49 | 显示全部楼层
上面的算法真绝……
回复

使用道具 举报

发表于 2006-12-8 23:33 | 显示全部楼层
原帖由 10JQKA 于 2006-11-27 17:57 发表
#include<stdio.h>
int main()
{
long number;
printf("please input a number:");
scanf("%ld",&number);
printf("all bit number + is %d\n",number==0?0:(number%9?number%9:9) );
printf("1W,^_^~~~~");
return 0;
}


8 错,好像在哪见过...
回复

使用道具 举报

发表于 2006-12-13 00:25 | 显示全部楼层
各位的和居然能转变成除以9的余数。。。这过程真奇妙  016
回复

使用道具 举报

发表于 2006-12-13 00:30 | 显示全部楼层
应该不难,但1W太少了
回复

使用道具 举报

发表于 2006-12-13 00:39 | 显示全部楼层
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
long n;
cout<<"please input a number:"<<endl;
cin>>n;
cout<<"all bit number + is "<<0?0:(number%9?number%9:9)<<endl;
cout<<"1W,^_^~~~~";
return 0;
}
回复

使用道具 举报

发表于 2006-12-14 00:46 | 显示全部楼层
7楼的方法好。

6楼方法朴实,确有用。

斑竹还不给饭票?
回复

使用道具 举报

发表于 2006-12-14 00:58 | 显示全部楼层
对于一个输入并不大的整数:
main()
{
    long sum,x;
    printf("Please input a number:");
    scanf("%ld",&x);
    printf("%ld",x);
    while(x>9)
    {
        sum=0;
        while(x>0)
        {
            sum+=x%10;
            x/=10;
        }
        x=sum;
        printf("->%ld",x);
    }
    getch();
}

[ 本帖最后由 wingzero 于 2006-12-14 00:59 编辑 ]
回复

使用道具 举报

发表于 2006-12-14 12:15 | 显示全部楼层
有内部人士透露:饭票要升值了!!!

原来的饭票可能要先缩水,到时不知道基金的饭票够不够用...
回复

使用道具 举报

 楼主| 发表于 2006-12-14 12:45 | 显示全部楼层
我的饭票存在银行,暂时取不出来
回复

使用道具 举报

发表于 2006-12-22 19:17 | 显示全部楼层
acm1115题吧?
我做了两种,
下面是第一种,答案错误!在浙江大学的acm
#include<stdio.h>
#include<stdlib.h>
int main()
{
    long n;
    scanf("%ld",&n);
    while(n!=0)
    {
         if(n==0)
         printf("0\n");
         else if(n%9==0)
         printf("9\n");
         else printf("%d",n%9);      
           scanf("%ld",&n);     
               }
   
    system("pause");
    return 0;}
回复

使用道具 举报

发表于 2006-12-22 19:18 | 显示全部楼层
第二种,.超 时
汗!!!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int count(char *ch)
{
    int nu=0;
    while(*ch!=0)
    {
    nu++;
    ch++;
    }
    return nu;
    }
int main()
{
     char a[101];
     memset(a,0,101);
     gets(a);
     int j;
     while(1)
     {
     if(atoi(a)==0)
     break;
     int i=count(a);
     int sum=0;
     int n;
     for(j=0;j<i;j++)
     {
         sum+=a[j]-48;   
      }
     if(sum==0)
     n=0;
     else if(sum%9==0)
      n=9;
      else
     n=sum%9;
     printf("%d\n",n);
     gets(a);  
     }   
     system("pause");
     return 0;
    }
回复

使用道具 举报

发表于 2006-12-22 19:24 | 显示全部楼层
楼上,考虑下当数字是一个long容不下时要怎么做...
回复

使用道具 举报

发表于 2006-12-22 19:29 | 显示全部楼层
楼上,我所以用了第二种,~超时,无奈~楼上有何高见?指点指点
回复

使用道具 举报

发表于 2006-12-22 19:31 | 显示全部楼层
刚听你说,也去看看...
明天的四级没希望了,今晚就做做这题...

感觉很简单的题目...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-31 08:02

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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