UVA 550 - Multiplying by Rotation
来源:互联网 发布:linux mediawiki 安装 编辑:程序博客网 时间:2024/04/28 17:02
Warning: Not all numbers in this problem are decimal numbers!
Multiplication of natural numbers in general is a cumbersome operation. In some cases however the product can be obtained by moving the last digit to the front.
Example: 179487 * 4 = 717948
Of course this property depends on the numbersystem you use, in the above example we used the decimal representation. In base 9 we have a shorter example:
17 * 4 = 71 (base 9)
as (9 * 1 + 7) * 4 = 7 * 9 + 1
Input
The input for your program is a textfile. Each line consists of three numbers separated by a space: the base of the number system, the least significant digit of the first factor, and the second factor. This second factor is one digit only hence less than the base. The input file ends with the standard end-of-file marker.Output
Your program determines for each input line the number of digits of the smallest first factor with the rotamultproperty. The output-file is also a textfile. Each line contains the answer for the corresponding input line.Sample Input
10 7 4 9 7 4 17 14 12Sample Output
6 2 4题意:给出一个进制,一个数的最低位,和别的的一个数,比如10进制,第一个数字的最低位是7,第二个数字是4,
和规矩(XXXXX7 * 4 = 7XXXXX,例子: 179487 * 4 = 717948 )求出第一个数字的最小长度。
看起来很难,其实动笔写写就熟悉打听了。输入k,m,n,本来的数字为s,因为s的最后一位为m,则s*n的最后一位为s*n%k,而s*n%k又是s的倒数第二位,如许又可以策画出ans*n的倒数第二位;因为知道最低位,所以次低位一定是最低位*第二个数�se。以此类推,递归下去即可。
最终条件是,没有进位了,而且乘积+原来的进位==最低位。
以此类推,直到乘积+本来的进位==最低位。
17 * 4 = 71 (base 9)
as (9 * 1 + 7) * 4 = 7 * 9 + 1
#include <iostream>#include<cstdio>using namespace std;int main(){ int k,m,n; while(scanf("%d%d%d",&k,&m,&n)!=EOF)//k:进制,m:最后一个数,n:乘数. { int count=1; int s=m*n; while(s!=m) { count++; s=s%k*n+s/k; } printf("%d\n",count); } 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
- get方式提交 参数中有中文 乱码
- C++临时性对象的生命周期
- excel批量导入到数据库
- Visual Studio12中添加已有文件夹方法
- iOS6中无法正常游戏横屏的解决方法
- UVA 550 - Multiplying by Rotation
- MySql日期处理系列-日期截取/转换方法
- LFS安装完重启后无法进入系统(could not find filesystem /dev/root)
- Linux学习的路线图
- 谈谈阿里系的技术积累 是什么让旗下网站爆发惊人能量
- JAVA的文件操作【转】
- 线程
- 简单php分页
- paramiko的两种简单用法,sftp上传下载,执行服务器cmd