UVA 550 - Multiplying by Rotation
2017-09-06 15:00
351 查看
题目大意:输入k,w,c。在k进制下,一个以w为个位数的数N乘上c的结果,为将这个N的个位数移动到第一位。求这个N最少几位数。例如10 7 4, 最少位数情况为 179487 * 4 = 717948。
解题思路:首先n是原数的最低位,那么n*m%k就是原数的倒数第二位,也就是后一个数的最后一位,那么依次类推,可以把后一个数全部推出来,直到乘数加进位等于n,结束。
ac代码:
解题思路:首先n是原数的最低位,那么n*m%k就是原数的倒数第二位,也就是后一个数的最后一位,那么依次类推,可以把后一个数全部推出来,直到乘数加进位等于n,结束。
ac代码:
#include<iostream> using namespace std; int main(){ int k, w, c, t1, t2, t3; while (scanf("%d%d%d", &k, &w, &c)!=EOF){ t1 = w, t2 = 0; for (int i=1; ; i++){ if (t1 * c + t2 == w){ printf("%d\n", i); break; } t3 = (t1 * c + t2) % k; t2 = (t1 * c + t2) / k; t1 = t3; } } }
相关文章推荐
- uva 550 - Multiplying by Rotation
- UVA 550 Multiplying by Rotation (简单递推)
- uva 550——Multiplying by Rotation
- UVa 550 Multiplying by Rotation
- Multiplying by Rotation UVA550
- UVa550 Multiplying by Rotation
- UVa 550 - Multiplying by Rotation
- UVA-550 Multiplying by Rotation
- UVa 550 - Multiplying by Rotation
- UVA - 550 Multiplying by Rotation
- UVA - 550 Multiplying by Rotation 公式题
- uva 550 Multiplying by Rotation
- Uva 550 - Multiplying by Rotation
- UVa 550 Multiplying by Rotation
- UVA - 550 Multiplying by Rotation
- uva 550 - Multiplying by Rotation
- UVA - 550 Multiplying by Rotation
- UVa 550 Multiplying by Rotation (模拟乘法)
- UVA - 550 Multiplying by Rotation
- UVA550 Multiplying by Rotation