题意:第m个满足末尾连续k个0的数是斐波那契的第几项。
思路:先通过打表输出找到规律,然后根据规律解题。运行完打表代码之后会发现1,3,4,5,6,7,……都是到第9个数增量是有一个变化,而2是到第4个数增量有了变化。附大表代码
#include <iostream>
#include <cmath>
#include <cstdio>
#define ll long long
using namespace std;
int pp(int a,int b)
{
int ans=1;
while(b)
{
if(b&1)
ans=ans*a;
a=a*a;
b>>=1;
}
return ans;
}
int main()
{
int t;
cin>>t;
while(t--)
{
ll k,m;
cin>>k>>m;
if(k==1)
{
cout<<((m-1)/9)*15+m*15<<endl;
}
else if(k==2)
{
cout<<150*m+((m-1)/4)*150<<endl;
}
else{
cout<<((m-1)/9)*75*pp(10,k-2)+75*pp(10,k-2)*m<<endl;
}
}
return 0;
}
// 打表
/*
int main()
{
int n;
while(cin>>n)
{
int ans;
ans=pp(n);
int p=pp(n+1);
int f1=1;
int f2=1;
int tot=0;
for(int i=3;i<=100000000;i++)
{
int tmp=(f1+f2)%p;
f2=f1;
f1=tmp;
if(tmp%ans==0&&tmp!=0)
{
cout<<n<<"个0 "<<++tot<<" "<<i<<endl;
}
if(tot==30)
{
break;
}
}
}
return 0;
}*/