uva 550 Multiplying by Rotation

题意:给出数的进制,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;
} 

原文地址:https://www.cnblogs.com/jihe/p/4698489.html