题意:给出数的进制,t,m. #t*m=t#(#代表一串数字),求#的最小位数。
思路:这道题看上去不知道怎么解,在练习本上模拟一下运算过程就知道了以10 7 4为例
7*4=28 28/10=2 28%10=8
8*4+2=34 34/10=3 34%10=4
4*4+3=19 19/10=1 19%10=9
9*4+1=37 37/10=3 37%10=7
7*4+3=31 31/10=3 31%10=1
1*4+3=7
结果是179487*4=717948
代码:
#include<iostream>
using namespace std;
int main()
{
int ans,num,d,jin;
while(cin>>jin>>num>>d)
{
int t=num;
ans=0;
int m=0;
do
{
t=t*d+m;
m=t/jin;
t=t%jin;ans++;
if(t==num&&m==0)
break;
}while(1);
cout<<ans<<endl;
}
return 0;
}