C语言记数问题 NOIP2013普及组习题 1.记数问题 (count.cpp/c/pas) 【问题描述】 试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 07:47:10
![C语言记数问题 NOIP2013普及组习题 1.记数问题 (count.cpp/c/pas) 【问题描述】 试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10](/uploads/image/z/13862862-54-2.jpg?t=C%E8%AF%AD%E8%A8%80%E8%AE%B0%E6%95%B0%E9%97%AE%E9%A2%98+NOIP2013%E6%99%AE%E5%8F%8A%E7%BB%84%E4%B9%A0%E9%A2%98+1%EF%BC%8E%E8%AE%B0%E6%95%B0%E9%97%AE%E9%A2%98+%28count.cpp%2Fc%2Fpas%29+%E3%80%90%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0%E3%80%91+%E8%AF%95%E8%AE%A1%E7%AE%97%E5%9C%A8%E5%8C%BA%E9%97%B41%E5%88%B0n%E7%9A%84%E6%89%80%E6%9C%89%E6%95%B4%E6%95%B0%E4%B8%AD%2C%E6%95%B0%E5%AD%97x%EF%BC%880%E2%89%A4x%E2%89%A49%EF%BC%89%E5%85%B1%E5%87%BA%E7%8E%B0%E4%BA%86%E5%A4%9A%E5%B0%91%E6%AC%A1%3F%E4%BE%8B%E5%A6%82%2C%E5%9C%A81%E5%88%B011%E4%B8%AD%2C%E5%8D%B3%E5%9C%A81%E3%80%812%E3%80%813%E3%80%814%E3%80%815%E3%80%816%E3%80%817%E3%80%818%E3%80%819%E3%80%8110)
C语言记数问题 NOIP2013普及组习题 1.记数问题 (count.cpp/c/pas) 【问题描述】 试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10
C语言记数问题 NOIP2013普及组习题
1.记数问题
(count.cpp/c/pas)
【问题描述】 试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10、11中,数字1出现了4次.【输入】
输入文件名为count.in.
输入共1行,包含2个整数n、x,之间用一个空格隔开.【输出】
输出文件名为count.out.
输出共1行,包含一个整数,表示x出现的次数.
对了.这个要编程出这个程序,对了再加50分!
C语言记数问题 NOIP2013普及组习题 1.记数问题 (count.cpp/c/pas) 【问题描述】 试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10
#include<stdio.h>
#include<string.h>
void count(int a[],int n)
{
\x09int mod,i,temp=1,nn=n;
\x09for(i=0;i<10;a[i]=0,i++);
\x09if(n<10)
\x09{
\x09\x09for(i=1;i<n;a[i]=1,i++);
\x09\x09return ;
\x09}\x09\x09
\x09while(n>=10)
\x09{
\x09\x09mod=n%10;
\x09\x09n/=10;
\x09\x09for(i=0;i<10;i++)
\x09\x09\x09a[i]+=temp*n;
\x09\x09for(i=1;i<=mod-1;i++)
\x09\x09\x09a[i]+=temp;
\x09\x09a[mod]+=( mod==0 ? nn%temp-temp+1 : nn%temp+1 ); // ?
\x09\x09temp*=10;
\x09}
\x09for(i=1;i<=n-1;i++)
\x09\x09a[i]+=temp;
\x09a[n]+=nn-n*temp+1;
}
int main()
{
\x09int n1,n2,a[10],b[10],i;
\x09while( scanf("%d%d",&n1,&n2)!=EOF && n1 && n2 )
\x09{
\x09\x09if(n1>n2)
\x09\x09\x09n1=n1+n2,n2=n1-n2,n1=n1-n2;
\x09\x09count(a,n1-1);
\x09\x09count(b,n2);
\x09\x09for(i=0;i<10;i++)
\x09\x09\x09printf("%d ",b[i]-a[i]);
\x09\x09printf("\n");
\x09}
\x09return 0;
}
参考这段代码哈,这是我在ACM OJ上AC过的代码,满意请采纳.