c语言之整除光棍

c语言之整除光棍,第1张

c语言之整除光棍

不知道作为程序员的你是否找到了另一半呢?不妨做一做光棍题吧!

描述

这里所谓的“光棍”,是指全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。

请编写程序读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。

但难点在于,s可能是个非常大的数。 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

输入

一个不以5结尾的正奇数x(<1000)。

输出

输出相应的最小的s和n,其间以1个空格分隔。

输入样例 1 

31

输出样例 1

3584229390681 15

#include  
int main(int argc,char *argv[])
{
    int n,a=1,b,k,c=0,z=0;
    scanf("%d",&n);
    while(1)
    { b=a%n;
    k=a/n;
     c++;
    if(k!=0)
    {printf("%d",k),z++;
    }
    else if(z!=0)
    {printf("%d",k);
    }
    else;
    if(b==0)
    break;
    a=b*10+1;
    }
    printf(" %d",c);
    
    
}

最棘手的问题是如何解决在一个大于0的数前输出0的问题,想到找一个变量代替,z;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5097612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存