题意
统计一下aaaa…aaa*b的结果里面有多少个数字d,a,b,d均为一位数,a的个数为n个。
解题思路
aaaa…aaa*b必定有一部分是重合的。我们找到重合的地方,将不重合的找出来,对比d,计算d的个数。
8*7=56
88*7=616
888*7=6216
888*7=62216
8888*7=622216
…
88…88*7=622…2216
参考代码
#include <bits/stdc++.h>
using namespace std;
int ans[100];
int main(){
int t,a,b,d,n;
cin>>t;
while (t--){
cin>>a>>b>>d>>n;
int k=0,left=0;
for (int i=0;i<n;i++){
int tmp=left+a*b;
int tmp1=tmp%10;
left=tmp/10;
if (k && tmp1==ans[k-1])
break;
ans[k++]=tmp1;
}
ans[k++]=left;
int cnt=0;
for (int i=0;i<k-2;i++)
if (d==ans[i])
cnt+=1;
if (d==ans[k-2]) cnt+=(n-k+2);
if (ans[k-1] && d==ans[k-1]) cnt++;
cout<<cnt<<endl;
}
return 0;
}