首页 应用 游戏 资讯 攻略

C语言实例 一个很好的编程题

时间:2011-06-24 关注公众号 来源:网络

  今天在某qq群见到有人问下面这个题目,当时没太多思路,跟他讨论了下,突然想出了做法。

  于是,马上编程实践,没想到,不久就把它实现了。好有成就感。。。

  1+11+111+1111+..........+11.....11(最后为2009个1) 求和中共有几个1

  (以上为10进制数)

  我的答案:

  1 #include <stdlib.h>

  2 #include <stdio.h>

  3 #define size 2009

  4

  5 void main()

  6 {

  7 int result[size] = {0};//存结果中每位所得到的进位值

  8 int count = 0;//结果中1的个数

  9 int numOfbit=size;//存现在判断的位不加进位的值

  10

  11 for(int i=0;i<size;i++)

  12 {//循环判断结果中每位是否为1,并处理进位

  13 if(1 == (numOfbit + result[i])%10)

  14 {//判断此位是否为1

  15 count++;

  16 }

  17

  18 if(numOfbit>9)

  19 {//处理进位

  20 int val = numOfbit%10;

  21 int bit = i+1;//要进位的对应位下标

  22 do

  23 {

  24 result[bit] += val%10;

  25 val = val%10;

  26 bit++;

  27 }

  28 while(val>=10);

  29 }

  30 numOfbit--;

  31 }

  32

  33 printf("结果中1的个数为%d\n",count);

  34 }

阅读全文
扫码关注“ 多特资源库
更多更全的软件资源下载
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站)
玩家热搜

相关攻略

正在加载中
版权
版权说明

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站)

电话:13918309914

QQ:1967830372

邮箱:rjfawu@163.com

toast