uva 550 - Multiplying by Rotation
来源:互联网 发布:sql表结构增删改查 编辑:程序博客网 时间:2024/04/28 15:56
题意:给一个进制数 最后一位数 和 乘数 要求求出最小的位数 满足 最后一位数变成第一位 其余的数不变 位置可以变
下面是copy 别人的分析:
原文地址:UVA 550 - Multiplying by Rotation 解题报告 作者:Code_Life_LiWan
这个题一开始没看懂什么意思,所以就放在那没做,还是今天pengnix跟我说了这个题,才开始做的。
题目就是给出三个数,jinzhi,lastnumber,chengshu.求出在jinzhi进制下最少几位数a使得a*chengshu的值最后一位变成最前一位,其他不变。为了说明问题,还是拿题目说明测试数据来说吧。
179487 * 4 = 717948(10进制)
4*7=28 28!=7 28/10=2 28=8;
4*8+2=34 34!=7 37/10=3 34=4;
4*4+3=19 19!=7 19/10=1 19=9;
4*9+1=37 37!=7 37/10=3 37=7;
4*7+3=31 31!=7 31/10=3 31=1;
4*1+3=7 7==7;(end)
为什么可以这样做呢 我们可以观察到 前一个数的余数一定是下一个数的乘数 这样算下来就满足 最后一位数变成第一位 其余的数不变的条件了
#include<cstdio>int main(){ #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOCAL int b,last,f; while(scanf("%d%d%d",&b,&last,&f) !=EOF) { int i,cnt,N; N = last; i = cnt = 0; while(1) { if(last*f+i == N) { cnt++; break; } cnt++; last = last*f+i; i = last/b; last = last % b; } 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 1715 大菲波数(高精度加法+打表 + 斐波那契数)
- Android之Fragment实现界面交互小实例1
- phpcms v9联动菜单的调用方法_详解get_linkage函数
- 10 More Common Mistakes Java Developers Make when Writing SQL
- Android Vold架构
- uva 550 - Multiplying by Rotation
- 如何分析解决Android ANR
- cin输入类型不符后
- phpcms新版V9关于列表页与内容页调用同级栏目方法!
- Android 音频系统
- Java基础之008-多线程
- HDU 4571 SPFA+DP
- 如何制作并更改项目icon文件
- 第二篇:创建第一个Android程序