Accurately Say "CocaCola"!(找规律+打表)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2965
View Code
1 #include<iostream> 2 using namespace std ; 3 int main() 4 { 5 int a[100] = {0,7,27,70,70,70,70,70,70,70,70,270 } ; 6 int t, i, p ; 7 cin>>t ; 8 for(i=12; i<100; i++) 9 a[i] = 700 ; 10 while(t--) 11 { 12 cin>>p ; 13 cout<<a[p]<<endl ; 14 } 15 return 0 ; 16 }
寻找满足一下条件之一的数字:
1能够被7整除。
2某一位数是7。
测试数据:
第一行:测试样例的数目N。
剩下N行:每行输入一个数字P,求有P个连续的这样的数字的,最小的 起始满足条件的数字。
思路:打表即可。
因为p较小,最大才99,又从700-799就可以满足全部条件。可以打表出来,找出每个连续的一段满足要求的数,保存起来即可,由题目知道
p=1,a=7;
p=2,a=27;
p=3、4、5...10,a=70;
p=11,a=270;
p=12...99,a=700;
所以直接保存在数组中,最后输出结果就A了。