问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求解c语言中数从一到n中一出现次数的问题,一下是老师的代码,老师说还可以用递归的方法。求解释。

发布网友 发布时间:2022-10-30 13:12

我来回答

1个回答

热心网友 时间:2023-10-11 13:17

问题可以说成是:对数数据N,在从1到N的所有数值中,各个数位上出现的1的次数的统计。

这个问题的解决是按如下思路来的:1. 首先,统计的方式是从个位开始,依次统计个,十,百,千, ... ... 各个数位上的1的个数。2. 当统计完所有数据个位上的1的个数以后,我们还需要统计这些数据十位及以上的各位的一的个数,也就是不考虑个位了。既然不考虑个位,那就相当于把原来的数据个位都去掉,也就是把原来的数除以10,来统计了;此时,原来的十位成为了个位,这个问题就又转换成了统计个位上1的个数的问题了。要注意的是,此时各位的一个1,实际上是10个,因为这一个位为1时,个位是可以从0到9变化的;同理,当百位上有一个1时,实际上有100个数的百位1(十位个位从00到99,共100个数),3. 重复第二步,直到没有更高的有效数位。

那么如何来统计这些数个位上1的个数呢:

对于一个两位数N,如果它的十位数为n,则这些数中个位上的1的个数为 n或者n+1,是否+1,要看个位上的数字是否大于等于1,是则加,不是则不加。如N为55,则个位是1的数据共有5+1个(这些数分别是1,11,21,31,41, 再加上51),这个+1就是因为个位的5大于1(包括了最后的那个51);而N为50时,则个位是1的数据共有5个,没有+1,就是因为个位的0小于1(不能包括最后的51)。

以上的结论实际上是可以推广至位数大于2的情况。比如N=231,则从1到231的所有231个数中,个位上1的个数为23+1=24个(1-99之间10个,100-199之间10个,200-231之间4个)。

这样一来,上面的代码就不难理解了

#include <stdio.h>
int main(){
    int cnt=0,c,i,k,n,X=1;
    scanf("%d",&n);
    for (i=1; k=n/i; i*=10) { 
    // i的变化为1, 10, 100, 1000, .....
    // 则k就是原数据、原数据/10、原数据/100、原数据/1000、....
        cnt += (k / 10) * i; // k/10为个位以上的各位数字
        c=k%10; // 当前位的数字
        if (c>X) cnt += i; 当前位的1,代表有i个数这个位都是1
        else if (c==X) cnt += n - k * i + 1; 
                // n-k*i为低位的数字
   }
   printf("%d", cnt);
   return 0;
  }

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
写论文值得推荐的app 写论文app大全汇总 有啥好用又免费的文献查阅网站吗? 高仿苹果手机关机关不了机?是怎么回事?有那个朋友请告知! 高仿苹果6开机就是白屏黑苹果,关机关不了 怎么把电子相册保存到QQ空间相册 整个乡村音乐史上,最动人的25首歌 写给狗的歌 右侧肢体肌力4级是什么意思 肌力分级的评定标准 肌力4级是什么意思 一道七年级数学竞赛题(选择题),点击图片即可放大。 在从1到n的正数中1出现的次数 JAVA 数学兴趣小组的同学在一次数学竞赛中的成绩统计图如右图。这次竞赛的及格率(含优良和合格)是百分之多少 Tom writes as as I.A. careful B. carefuler C. more careful D. carefully 右图是某校六年级学生数学竞赛获奖人数统计图 twinkle twinkle little star什么歌? 王正平的简史 公司人事一周工作总结 遂宁的仁湖花园周边有幼儿园吗? 开封新街口和安格堡幼儿园哪个好? 开封市安格堡幼儿园怎么样 合川安格堡幼儿园学费是多少钱一个学期? 安格堡幼儿园可以退学 爱因斯坦出生时脑袋畸形,为何能成就了不一样的人生? 深圳市酸渡餐饮服务有限公司怎么样? 恒星是星云形成的吗? 恒星在诞生初期,为何会被各类星云和灰尘笼罩? 恒星和星云到底哪个先产生 激光脱毛后皮肤起红点刺痛 激光脱毛后出线密密麻麻的红点很吓人 c语言“1~n中1出现的次数”,网上有段代码,求解析 C语言或者C++求:1到n 1出现次数问题 高中数学竞赛同余~~~图片中的a上面加了一条线是什么意思? C++ 求解一道题 给出任意一个整数n,计算出 从1到n中所有数中1出现的次数 求大神帮忙 图下的数学竞赛,在广东省广州市内的大学,去哪报名啊,有人知道吗?下面的图是在中国大学生数学竞赛网找 每日一题:在1至220这220个自然数中,数字1出现了多少次? 端午节做葫芦的现场教学 CGV国际影城 北京顺义店怎么样 顺义cgv国际影城有情侣座吗 票价多少 北京鸟巢开一家CGV影城,这个影城怎么样呀? 想知道: 北京市 北京希杰cgv星星国际影城(奥体店) 在哪 【急急急!】请问cgv影城是什么啊,在哪儿啊这是?我这儿有了两张票,是叫什么cgv影城的,请问这个影城... 但我的脸被抓花了,请问我该怎么办 一百天的宝宝指甲好硬啊!总是把脸抓花了,怎么办? 东风标致三厢207的机动力性能介绍 请问大神 后两字咋读 求达人告知此歌曲名字 oppov3图片 J酸的简介 J酸的化学性质