整数移位

来源:互联网 发布:python sha.new 编辑:程序博客网 时间:2024/06/05 16:30

题目:整数N的尾数是a,把尾数a移到其前面(成为最高位)后所得的数为原整数N的k倍,原整数N至少为多大?

没有考虑限定尾数的情况:

#include <stdio.h>#include <math.h>int main(){        int k;//倍数        printf("请输入倍数:\n");        scanf("%d",&k);        while(k<=0)        {                printf("倍数输入有误,请重新输入:");                scanf("%d",&k);        }        int num = 1;//整数初始化从1开始        int a;//整数最后一位        int count = 0;//整数的位数        int temp;//存放整数的临时变量        while(1)        {                temp = num;                while(temp > 0)//计算整数位数                {                        temp /= 10;                        count++;                }                a = num % 10;//计算整数最后一位                if(((a*(int)pow(10,count-1) + num/10) / num ) == k)//判断移位后的整数是否是原来的整数K倍                {                        printf("最小整数:%d\n",num);                        break;                }                num++;//整数加1                count = 0;//整数位数清零        }        return 0;}

考虑限定尾数的情况:

#include <stdio.h>#include <math.h>int main(){        int k;//倍数int a;//整数最后一位        printf("请输入倍数:\n");        scanf("%d",&k);        while(k<=0)        {                printf("倍数输入有误,请重新输入:");                scanf("%d",&k);        }printf("请输入整数尾数:\n");scanf("%d",&a);while(a<0 || a>9){printf("整数尾数输入有误,请重新输入:");scanf("%d",&a);}        int num = a;//整数初始化从a开始        int count = 0;//整数的位数        int temp;//存放整数的临时变量        while(1)        {                temp = num;                while(temp > 0)//计算整数位数                {                        temp /= 10;                        count++;                }                if(((a*(int)pow(10,count-1) + num/10) / num ) == k)//判断移位后的整数是否是原来的整数K倍                {                        printf("最小整数:%d\n",num);                        break;                }                num+=10;//整数加10                count = 0;//整数位数清零        }        return 0;}



原创粉丝点击