1.题目大意

把前n$(n\le 10000)$个整数顺次写在一起:12345678910111213……计算0~9各出现了多少次。

2.思路

第一想法是打表,然而觉得稍微有点暴力。不过暂时没有想到更好的办法了,写完看了一下其它人的思路好像也差不多是打表的思路。

3.应注意的问题

(1)首先是格式问题,我第一次提交的时候PE了,因为没有意识到空格也会有影响。最开始我的最后一段代码是:

for(i=0;i<10;i++)
printf("%d ",s[n][i]);
printf("\n");

但是事实证明应该写成:

 for(i=0;i<9;i++)
printf("%d ",s[n][i]);
printf("%d",s[n][9]);
printf("\n");

(2)打表的时候容易忘记初始化的时候先清零一次。因此在以后用到打表的时候要注意这个问题。

4.代码

#include"stdio.h"
#include"string.h"
#define maxn 10001
int main()
{
int s[maxn][10];
int i,j,n,m,T;
memset(s,0,sizeof(s));//数组清零 易漏
for(i=1; i<maxn; i++)
{
m=i;
for(j=0; j<10; j++)
s[i][j]=s[i-1][j];
while(m>0)
{
s[i][m%10]++;
m/=10;
}
}
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=0; i<9; i++)
printf("%d ",s[n][i]);
printf("%d",s[n][9]);
printf("\n");
}
return 0;
}

  

参考书目:算法竞赛入门经典(第2版) 刘汝佳 编著

最新文章

  1. Java 序列化与反序列化
  2. java设计模式学习(-)
  3. [C]基本数据类型:整型(int)用法详解
  4. 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
  5. 转:dashboard的简明教程
  6. Cocoapods注意点
  7. signtool对EXE进行签名
  8. .Net 内存泄露
  9. Classes and Objects :类和对象(1)
  10. (原)opencv直线拟合fitLine
  11. UVA_埃及分数(Hard Version) UVA 12588
  12. 你学会UI设计了吗?
  13. netstat 的10个基本用法(转)
  14. properties配置文件读取操作总结【java笔记】
  15. Dubbo的全局Filter配置
  16. IDA Pro使用技巧
  17. Qt532.QString_填充字符
  18. requestsManager:didFailRequest:withError: Error Domain=com.albertodebortoli.goldraccoon Code=-1000 &quot;(null)&quot; UserInfo={message=Unknown error!}
  19. linux 守护进程 daemon
  20. 2015306 白皎 《网络攻防》Exp4 恶意代码分析

热门文章

  1. Vue--- vue-cli 脚手架 安装 -reeber
  2. Ubuntu更换国内源
  3. 竞赛题解 - NOIP2018 赛道修建
  4. Git 远程推送被拒绝的一种解决方案
  5. mysql使用数据库
  6. jquery 插件学习
  7. 文件后缀与Mime类型对照表
  8. 使用ntp协议同步本地时间(C语言)
  9. react--基本用法
  10. IOI 2017 Practice Contest mountains