| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4249 人关注过本帖, 3 人收藏
标题:忙里偷闲娱乐一下 数数字(二) 24小时后结贴
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
结帖率:100%
收藏(3)
已结贴  问题点数:100 回复次数:46 
忙里偷闲娱乐一下 数数字(二) 24小时后结贴
十进制数11,包含2个1。12包含1个1。

现在请计算1到1万亿(包含1和1万亿)之间的数(十进制)所包含的1的总数。

24小时后结贴,100分只给第一个回答正确的朋友。欢迎打酱油的旁观。

补充说明:好像有人理解有歧义,我指的是1到1万亿的所有整数中一共包含的1的个数,不是之间的某一个数所包含的1的个数。

[ 本帖最后由 beyondyf 于 2012-6-19 22:44 编辑 ]
搜索更多相关主题的帖子: 24小时 打酱油 十进制 
2012-06-19 22:14
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
  #include"stdio.h"
    int main(void)
    {
        int num=0;
        unsigned long long  n;
        
        scanf("%lld",&n);
        
        while(n>0)
        {  
        if(n%10==1)
        num++;
        n=n/10;
        }
                        
                     
        printf("%d",num) ;
        getch();
    }
            
2012-06-19 22:35
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
继续蹭分。。。您说的好戏就是这个吗?
2012-06-19 22:35
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:0 
打酱油
2012-06-19 22:40
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
呃,是我没说清楚么?我要的是1到1万亿之间的所有的整数中包含的1的个数的总和。

重剑无锋,大巧不工
2012-06-19 22:40
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
回复 5楼 beyondyf
是我看错了。。。。思考中!
2012-06-19 23:01
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 楼主 beyondyf
1 到 1 万亿是指 [1, 999999999999] 吗?
2012-06-19 23:06
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 7楼 pangding
是[1, 1000000000000]。我说了包含1和1万亿。看来我的语言表达能力还是欠佳。

晚安各位,明天看各位的结果。

重剑无锋,大巧不工
2012-06-19 23:19
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
    #include"stdio.h"
      #define N 1000000000000
    int main(void)
    {
       static  int num=0;
        unsigned long long  n=1;
        
        for(n=1;n<=N;n++)
         while(n>0)
        {  
        if(n%10==1)
        num++;
        n=n/10;
        
        }
        
                    
                     
        printf("%d",num) ;
        getch();
    }
             今天只能想到这儿了,说太大,明天再想吧,哎!明天来瞅瞅有其他人都咋想的?苦逼的孩子伤不起啊,明天还有考试!!!休息去了!!
2012-06-19 23:19
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:19 
程序代码:
unsigned long long howmuch_one(unsigned long long target)
{
    if (target<=10)
    {
        return 1;
    }
    return target/10 + 10*howmuch_one(target/10);
}

void main()
{
    unsigned long long i = 1000000000000;
    printf("%lld\n",howmuch_one(i)+1);
}


输出:1200000000001.

I can not believe this.

不好意思,如果把最后个数包含进来,少算了一个1.

应该是1200000000001.

[ 本帖最后由 demonleer 于 2012-6-19 23:51 编辑 ]
2012-06-19 23:19
快速回复:忙里偷闲娱乐一下 数数字(二) 24小时后结贴
数据加载中...
 
   



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

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