标签:
统计一下由数字a组成的n位数与b相乘结果中含有多少个数字d; (引自原题目)
样例解释:
3333333333*3=9999999999,里面有10个9。
多组测试数据。 第一行有一个整数T,表示测试数据的数目。(1≤T≤5000) 接下来有T行,每一行表示一组测试数据,有4个整数a,b,d,n。 (1≤a,b≤9,0≤d≤9,1≤n≤10^9)
对于每一组数据,输出一个整数占一行,表示答案。
2 3 3 9 10 3 3 0 10
10 0
//优美的模拟; #include <cstdio> #include <iostream> using namespace std; int main() { int t; scanf("%d", &t); while(t--) { int a, b, d, n; scanf("%d%d%d%d", &a, &b, &d, &n); if(a*b<= 9) { if(d==a*b) cout << n<<‘\n‘; else cout<<0<<‘\n‘; } else { int z=a*b /10; int r=a*b %10; //位数 ; int res[10]={0}; res[r]++; n--; while(n) { r=(a*b+z)%10; z=(a*b+z)/10; if(res[r]) { res[r]+= n; break; } else { res[r]++; } n--; } res[z]++; cout<< res[d] <<endl; } } return 0; }
标签:
原文地址:http://www.cnblogs.com/ceal/p/5525294.html