uva 550 Multiplying by Rotation

来源:互联网 发布:淘宝网雪地靴 编辑:程序博客网 时间:2024/04/28 22:10

模拟乘法的过程,当乘积的新得到的一位和a0相同且进位为0的时候,就达到了factor1的最小长度。

代码:

#include <stdio.h>void func(int base, int a0, int k){int jinwei; //进位数int count, fac1_bit, mul_bit;count = 0;fac1_bit = a0;jinwei = 0;while(1){mul_bit = (fac1_bit*k+jinwei) % base;jinwei = (fac1_bit*k+jinwei)/base;count ++;if(mul_bit==a0 && jinwei==0)break;fac1_bit = mul_bit;}printf("%d\n", count);}int main(void){int base, a0, k;while(scanf("%d %d %d",&base,&a0,&k) != EOF){func(base, a0, k);}return 0;}



原创粉丝点击