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版) 刘汝佳 编著

UVa 1225 - Digit Counting - ACM/ICPC Danang 2007 解题报告 - C语言的更多相关文章

  1. 数数字 (Digit Counting,ACM/ICPC Danang 2007,UVa 1225)

    思路: 利用java 特性,将数字从1 一直加到n,全部放到String中,然后依次对strring扫描每一位,使其carr[str.charAt(i)-'0']++; 最后输出carr[i],即可. ...

  2. 数数字(Digit Counting,ACM/ICPC Danang 2007,UVa1225)

    #include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s[10000]; in ...

  3. 习题3-3 数数字(Digit Counting , ACM/ICPC Danang 2007, UVa1225)

    #include<stdio.h> #include<string.h> int main() { char s[100]; scanf("%s",s); ...

  4. 数数字 (Digit Counting,ACM/ICPC Dannang 2007 ,UVa1225)

    题目描述:算法竞赛入门经典习题3-3 #include <stdio.h> #include <string.h> int main(int argc, char *argv[ ...

  5. UVa 1585 - Score - ACM/ICPC Seoul 2005 解题报告 - C语言

    1.题目大意 给出一个由O和X组成的字符串(长度为80以内),每个O的得分为目前连续出现的O的数量,X得分为0,统计得分. 2.思路 实在说不出了,这题没过脑AC的.直接贴代码吧.=_= 3.代码 # ...

  6. UVa 1225 Digit Counting --- 水题

    UVa 1225 题目大意:把前n(n<=10000)个整数顺次写在一起,12345678910111213...,数一数0-9各出现多少字 解题思路:用一个cnt数组记录0-9这10个数字出现 ...

  7. UVa 1225 Digit Counting

    题意:给出n,将前n个整数顺次写在一起,统计各个数字出现的次数. 用的最笨的办法--直接统计-- 后来发现网上的题解有先打表来做的 #include<iostream> #include& ...

  8. UVa 1586 - Molar Mass - ACM/ICPC Seoul 2007 - C语言

    关键在于判断数字是两位数还是单位数,其他部分没有难度. #include"stdio.h" #include"string.h" #include"c ...

  9. [C++]最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

    Question 例题3-5 最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583) 如果x+x的各个数字之和得到y,就是说x是y的生成元.给出n( ...

随机推荐

  1. Vue--- 一点车项目 连接数据库

    Vue--- 一点车项目  连接数据库 创建连接数据库配置 ###导入 const Koa = require('koa'); const Router = require('koa-router') ...

  2. NodeJ node.js Koa2 跨域请求

    Koa2 .3 跨域请求 Haisen's  需求分析 (localhost:8080 = 前端  [请求]  localhost:8081 = 服务器 ) 1.一个前台    一个服务器    前台 ...

  3. SQLMAP注入常见用法

    1.检查注入点 sqlmap -u http://www.com.tw/star_photo.php?artist_id=11 2.列数据库信息当前用户和数据库 sqlmap -u http://ww ...

  4. OpenCV-Python 人脸眼睛嘴识别

    # 识别眼睛.嘴巴.人脸 image = cv2.imread('./yong.jpg') gray = cv2.cvtColor(image,code=cv2.COLOR_BGR2BGRA) # 加 ...

  5. “==”与equals的区别

    “==”与equals的区别: “==”:两个对象比较的是对象的引用地址比较,对象的hashCode值是对象的引用地址,只有两个对象的hashCode值一样,此比较符才会返回true,否则即使两个对象 ...

  6. Elasticsearch 数据查询

    数据准备: PUT /shop { "settings": { "number_of_shards": 3, "number_of_replicas& ...

  7. Spring quantz--定时任务调度工具

    1.在xml中交给spring管理的一些类 <bean id="cancelOrderJobDetail" class="org.springframework.s ...

  8. python--模块之random随机数模块

    作用是产生随机数 import random random.random:用于生成一个0--1的随机浮点数. print(random.random())>>0.3355102133472 ...

  9. 北京Uber优步司机奖励政策(3月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. 北京Uber优步司机奖励政策(1月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...