大家好,今天小编关注到一个比较有意思的话题,就是关于c语言 自守数的问题,于是小编就整理了1个相关介绍c语言 自守数的解答,让我们一起看看吧。
C语言自守数。任意输入一个自然数?
#include<stdio.h>intmain(){longmul,number,k,ll,kk;scanf(34;%ld",&number);for(mul=number,k=1;(mul/=10)>0;k*=10)
;/*由number的位数确定截取数字进行乘法时的系数k*/kk=k*10;/*kk为截取部分积时的系数*/mul=0;/*积的最后n位*/ll=10;/*ll为截取乘数相应位时的系数*/while(k>0){mul=(mul+(number%(k*10))*(number%ll-number%(ll/10)))%kk;/*(部分积+截取被乘数的后N位*截取乘数的第M位),%kk再截取部分积*/k/=10;/*k为截取被乘数时的系数*/ll*=10;}if(number==mul)/*判断若为自守数则输出*/printf("%ld是自守数",number)
;elseprintf("%ld不是自守数",number);}
到此,以上就是小编对于c语言 自守数的问题就介绍到这了,希望介绍关于c语言 自守数的1点解答对大家有用。