C言語 ぽ
Posted: 2017年11月18日(土) 00:45
1000以下の数字の中で一番節が長くなる数字を見つけたいのですが上手くできず頭を悩ましています…
-UUU:----F1 gyaku3.c Top L7 (C/l Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int i,j;
int count=0;
int m=0,k=0,f;
int *a,*b,*c;
void zyunkan(int x,int y){
a=malloc((4*y) * sizeof(int));
b=a+y;
c=b+y;
a[0]=b[0]=c[0]=0;
for(i=1;;i++){
c[i]=x%=y; // 余りを求めて、憶えておく
j=a[x]; // 余り
if (c[j]==x){
break;
}// 余りが既出なら抜ける
a[x]=i; // 余りの位置を憶えておく
x*=10; // 次の桁の計算に備える
b[i]=x/y;// 商を憶えておく
}
for(j=1;j<a[x];j++){
printf("%d", b[j]);
}
if (x){
printf("(");
}
for(;j<i;j++){
printf("%d", b[j]);
count++;
}
if (x){
printf(")");
}
if(m<count){
m=count;
k=y;
printf("最も桁数が大きなる値%d\n",y);
printf("%d\n",count);
printf("\n");
}
int main()
{
int n;
for(n=1;n<=1000;n++){
zyunkan(1,n);
}
free(a);
return 0;
}