程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言實例之一個很好的編程題

C語言實例之一個很好的編程題

編輯:關於C

今天在某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 }

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved