UVA 550 - Multiplying by Rotation
来源:互联网 发布:刘慧芳 知乎 编辑:程序博客网 时间:2024/04/28 19:25
数学题,一开始题意没太看懂,后来发现其实并不难,题目给出三个数:k,m,n;k进制,一个数ans的最后一位m,乘数n,要求求出最小的ans的位数,满足ans*n的第一位是ans的最后一位,其他位上的数字不改变,即如果ans=abcdefg,那么ans*n=gabcdef;
因为ans的最后一位为m,则ans*n的最后一位为ans*n%k,而ans*n%k又是ans的倒数第二位,这样又可以计算出ans*n的倒数第二位;
AC code :
#include<cstdio>
int main()
{
int k,m,n,tem;
while(scanf(\"%d%d%d\",&k,&m,&n)!=EOF)
{
int cnt= 1,ans=m*n;
while(ans!=m)
{
ans = ans % k * n + ans / k;
cnt++;
}
printf(\"%d\\n\",cnt);
}
return 0;
}
因为ans的最后一位为m,则ans*n的最后一位为ans*n%k,而ans*n%k又是ans的倒数第二位,这样又可以计算出ans*n的倒数第二位;
AC code :
#include<cstdio>
int main()
{
int k,m,n,tem;
while(scanf(\"%d%d%d\",&k,&m,&n)!=EOF)
{
int cnt= 1,ans=m*n;
while(ans!=m)
{
ans = ans % k * n + ans / k;
cnt++;
}
printf(\"%d\\n\",cnt);
}
return 0;
}
- 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
- 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
- HDU 3233 - Download Manager
- UVA 755 - 487--3279
- UVA 10785 - The Mad Numerologist
- 10014 - Simple calculations
- 10719 - Quotient Polynomial
- UVA 550 - Multiplying by Rotation
- UVA 375 - Inscribed Circles and Isosceles Triangles
- UVA 10387 - Billiard
- UVA 11234 - Expressions
- UVA 106 - Fermat vs. Pythagoras
- UVA 11054 - Wine trading in Gergovia
- 10912 - Simple Minded Hashing
- [转]C++的cin/cout高阶格式化操作
- UVA - 103 Stacking Boxes