奥数 --- 找规律 + 总结

问题 G: 数字的个数

时间限制:
1 Sec  内存限制: 128 MB
提交:
78  解决: 3
[提交][状态][讨论版]

题目描述

输入两个正整数a,b(1=<a<b<=1000000)及0~9的一个数字d

求在a与b之间的所有正整数(含a,b)中数字d出现的次数

输入

第一行一个数T(1 <= T <= 10000)

接下来 T 行每行由

a b d 三个数组成

输出

输出这组数据a与b之间所有正整数中数字d出现的个数,一

行一个

样例输入

2
1 100 1
10000 20000 5

样例输出

21
4000


【题目来源】

湖南工业大学第四届程序设计大赛(2014年校赛)

【题目分析】

这题在编程之美上有,只不过是换了一下数字,还有这题当判断0的个数时要加一个特判,否则会错。

其实就是利用高位、当前位、低位之间的关系,具体推导过程详见编程之美。

我的代码:


#include<iostream>
using namespace std;
int fun(int a,int d)
{
int cnt=0,factor=1,CurrNum=0,LowerNum=0,HigherNum=0;
while(a/factor)
{
HigherNum=a-(a/factor)*factor;
CurrNum=(a/factor)%10;
HigherNum=a/(factor*10);
if(d==0) //特判,这题的重点
HigherNum-=1;
if(CurrNum<d)
cnt+=HigherNum*factor;
else if(CurrNum==d)
cnt+=HigherNum*factor+LowerNum+1;
else
cnt+=(HigherNum+1)*factor;
factor*=10;
}
return cnt;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int a,b,d;
cin>>a>>b>>d;
cout<<fun(b,d)-fun(a-1,d)<<endl;
}
return 0;
}

时间: 2024-07-31 10:38:16

奥数 --- 找规律 + 总结的相关文章

BZOJ 4408 主席数+找规律

1 #include <cstdio> 2 const int Maxn=100010; 3 inline void Get_Int(int &x) 4 { 5 char ch=getchar(); x=0; 6 while (ch<'0' || ch>'9') ch=getchar(); 7 while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();} 8 } 9 struct Node 1

深度优先搜索[奥数等式、迷宫找人]

上一节我们用暴力枚举解决奥数等式,虽然简单,但是很蛋疼. http://blog.csdn.net/wtyvhreal/article/details/43267867 这一节讲用深搜的方式解决,高大上. 深度优先搜索(Depth First Search,DFS),理解深搜的关键在于解决"当下该如何做".至于"下一步如何做"则与"当下该如何做"是一样的.通常的方法就是把每一种可能都是尝试一遍.当前这一步解决后便进入下一步.下一步的解决方法和当前

SDUT 2867 小学奥数(下)(规律)

小学奥数(下) Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 到了夏天了,ACM协会发福利了,发了很多西瓜,聪明的小明很爱思考,一个西瓜, n刀最多能切成几部分? 你能帮他解决么? 输入 多组输入,每组一行,直到文件结束.输入一个n(0≤n≤100). 输出 对于每一组输入,输出单个数字,n刀可以把西瓜切成几部分. 示例输入 1 2 3 示例输出 2 4 8 提示 来源 示例程序 #include<iostream> #i

vijos - P1447开关灯泡 (大数模板 + 找规律 + 全然数 + python)

P1447开关灯泡 Accepted 标签:CSC WorkGroup III[显示标签] 描写叙述 一个房间里有n盏灯泡.一開始都是熄着的,有1到n个时刻.每一个时刻i,我们会将i的倍数的灯泡改变状态(即原本开着的现将它熄灭,原本熄灭的现将它点亮),问最后有多少盏灯泡是亮着的. 格式 输入格式 一个数n 输出格式 m,表示最后有m盏是亮着的 例子1 例子输入1[复制] 5 例子输出1[复制] 2 限制 1s 提示 范围:40%的数据保证,n<=maxlongint 100%的数据保证,n<=

poj 小学奥数专题

link 7656:李白的酒 找规律: n==1 2x-1=0; n==2 2(2x-1)-1=0;----->4x-3=0; n==3 2(2(2x-1)-1)-1=0--->8x-7=0; ... 答案为\(\frac{2^n-1}{2^n}\) 注意到n<=100,答案保留5位小数,可是\(2^{100}\)显然爆long long了,此时我们机智的使用计算器,发现在n>=18的时候答案就已经被四舍五入到1.00000了,特判即可. upd:您发现n<=100,那直接一

The Cow Lineup_找规律

Description Farmer John's N cows (1 <= N <= 100,000) are lined up in a row.Each cow is labeled with a number in the range 1...K (1 <= K <=10,000) identifying her breed. For example, a line of 14 cows might have these breeds: 1 5 3 2 5 1 3 4 4

【55测试】【字符串】【栈】【找规律】

集训第二天,额,考崩了. 第一题 hao 大意:(这个名字就不要在意了,其实是祖玛游戏) 模拟祖玛游戏的模式,给一个'A'~'Z'的字符串,然后有t个插入操作为 “ 添加后的在原字符串的位置 x  插入元素 c ”,字符串中有超过或等于 3 个相同的字符,则被消除,输出每次操作后剩余的字符串,如果为空,则输出“-”. 样例: ACCBA                     输出:  ABCCBA 5   AABCCBA 1 B AABBCCBA 0 A - 2 B A 4 C 0 A 解:

HDU 6198 number number number 矩阵快速幂 找规律

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6198 题目描述: 给你一个k, 你可以用K个斐波那契数列中的数来构造一个数, 现在我们要求构造不出来的那个最小的数字 解题思路: 首先我们把斐波那契数列写出来, 0, 1, 1, 2, 3, 5, 8, 13, 21, 43 . . . . . . , 我们首先发现当K == 1 的时候构造不出来的数显然是4, 然后2个的时候是12, 三个是33, 然后找规律就是 f(2*n+3)-1 .....

【模拟题(63550802...)】解题报告【贪心】【拓扑排序】【找规律】【树相关】

目录: 1.A[树相关]    2.B[找规律]    3.C[贪心][拓扑排序] A. 描述(A 输入文件 : A.input 输出文件 : A.output)一个城市的构成是一颗n 个节点的树(2 ≤ n ≤ 200), 现在需要在树中找出两条不相交的路径(即两条路径不能有重边也不能有重点),使得路径的长度的乘积最大.输入描述第一行一个数n 表示这个城市一共有 n 个节点.接下来 n-1 行,每行两个数ai 和bi (1 ≤ ai,bi ≤ n ),分别表示从ai 到bi,有一条边,每条边的