ここで、「学士」はない平均の友人をして - シングル王によると、1で構成番号など1,11,111,1111などのすべて。凡例は、学士は5で奇数の倍数で終わっていないのいずれかであり得ます。例えば、111111 13は、分割してもよいです。さて、あなたのプログラムは、整数xを読み取るために、整数は5の終わりに、確かではない奇妙です。次いで、算出した後、それは2つの数値を出力する第一の数S、Xが乗算されるSが暴漢を示し、2番目の数字はビットのN暴漢の数です。このようなソリューションは、確かにあなたの最も小さい出力ソリューションとして要求だけ、対象ではありません。
ヒント:1つの明白な方法は、徐々にビットの学士これまでのxで割り切れるまでの数を増やすことです。しかし困難すなわち、Sは非常に多数であってもよい - 例えば、入力プログラム31、及びその結果は、31 111111111111111、15 1の合計が乗算されるので、15 3584229390681、3584229390681を出力します。
入力フォーマット:
正の奇数X(<1000)の端部にライン5に示す入力。
出力形式:
出力行に対応する最小のnおよびsは、隙間によって分離されました。
サンプル入力:
31
サンプル出力:
358,422,939,068,115
#include<stdio.h>
int main(){
int x;
scanf("%d",&x);
int s=1; //用来表示光棍
int c=1; //储存位数
while(s<x){
s=s*10+1; //光棍至少要比x大吧!
c++;
do{
y=s%x; //储存余数
printf("%d",s/x);
if(y==0){
break;
}
s=y*10+1;
c++;
}while(y!=0); //自己手算一下111/15 就能理解了
printf(" %d",c);
return 0;
}