还剩1页未读,继续阅读
文本内容:
统计数字问题C/C++■问题描述一本书的页码从自然数开始顺序编码直到自然数书的页码按照通常的习惯编排,每1n个页码都不含多余的前导数字例如,第页用数字表示,而不是或等数字计06606006数问题要求对给定书的总页码计算出书的全部页码中分别用到多少次数字n,0,1,2,…9o编程任务给定表示书的总页码的进制整数编程计算书的全部页码中分别用到多少10nlWnWl9o次数字0,1,2,…,9O■数据输入每个文件只有行,给出表示书的总页码的整数1n结果输出1输出文件共有10行,在第k行输出页码中用到数字k・l的次数,k=l,2,10o代码一最笨的方法,依次对每个数字进行统计#includeiostream#includememory.husing namespacestd;void countintpage;int num
[10];void mainint mJ;whilecin»m{countm;forj=0;j10;++jcout«num[j]«endl;cout«endl;void countintpageint nJ;memsetnum,0,sizeofnum;fori=l;i=page;++i{n=i;whilen!=0++num[n%10];n/=10;代码二公式计算■考察由组成的所有位数,从个至」个共有个位数042……9n n0I n910n在这个位数中,每个数字使用的次数相同,设为满足如下递I10n0,1,2,……9fn fn归式■fn=nl0nl10fn-l=n-l10nl■可从高位向低位进行统计,再减去多余的的个数0#includeiostream#includememory.h#includecmathusing namespacestd;int weishuintn;int zuigaointn;int fintn;void fffintn;int num
[10];void mainintpagej;”请输入一个页码:whilecout vendl{cin»page;memsetnum,0sizeofnum;,intm=weishupage;fori=0;im;++iffpage;page=page%intpow10,weishupage-l;fori=0;i10;++icout«num[i]«cout«endl;〃求位数int weishuintnint i=l;whileintn/pow10,i!=0;i++return i;}〃求最高位上的数int zuigaointnreturn n/intpow10,weishun-l;〃所有位数中出现的次数int fintn n0-9return n*pow10,n-l;void ffintnint m=weishun,i;ifm==lfori=l;i=n;++inum[i]+=l;elsefori=0;i10;++inum[i]+=zuigaon*fm-l;fori=l;izuigaon;++inum[i]+=intpow10m-l;/num[zuigaon]=num[zuigaon]+l+n%intpow10,m-l;。
个人认证
优秀文档
获得点赞 0