zoukankan      html  css  js  c++  java
  • 【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 }
  • 相关阅读:
    manjora20安装搜狗输入法
    manjora20使用体验
    deepin20体验
    deepin20搜狗输入法使用
    deepin20使用snap并设置代理
    C#服务器端使用office组件
    华为多屏互动看学英语
    ThinkPad S5立体声混响以及语音识别
    mate10碎屏机当成小电脑使用尝试
    刷机错误ERROR:STATUS_BROM_CMD__FAIL
  • 原文地址:https://www.cnblogs.com/stublue/p/1662185.html
Copyright © 2011-2022 走看看