5位循环圈(黑洞数)

#include<stdio.h>
int a[5];
int k=0;
int hei[10000];
int len=0;
int flag;
int pos;


int main()
{
void print(int begin,int end);//重排求差终止,打印输出循环圈
void chong_pai(int n,int *p);//重排
void qiu_cha(int n);//求差
void  cun_chu(int cha);//求得的差之前没出现过,就存储
int exit_1(int n);//确定开始循环的位置
void pan_duan(int cha);//判断求得的差要存储还是输出


int n;
int i;


while(scanf("%d",&n)!=EOF)
{
qiu_cha(n);
len=0;
k=0;
}
return 0;


}


void print(int begin,int end)
{


void chong_pai(int n,int *p);
void qiu_cha(int n);
void  cun_chu(int cha);
int exit_1(int n);
void pan_duan(int cha);
int i;
printf("[");
for(i=begin;i<end-1;i++)
{
printf("%d,",hei[i]);
}
printf("%d]\n",hei[len-1]);


}


int exit_1(int cha)
{
void print(int begin,int end);
void chong_pai(int n,int *p);
void qiu_cha(int n);
void  cun_chu(int cha);
void pan_duan(int cha);


int i;


for(i=0;i<len;i++)
{
if(hei[i]==cha)
{
pos=i;
return 1;

}
}

if(i==len)
{
flag=0;
return 0;
}

}


void pan_duan(int cha)
{
void print(int begin,int end);
void chong_pai(int n,int *p);
void qiu_cha(int n);
void  cun_chu(int cha);
int exit_1(int n);


if(len==0)
cun_chu(cha);
else
{
if(exit_1(cha))
print(pos,len);
else
cun_chu(cha);


}
}


void chong_pai(int n,int *p)
{
void print(int begin,int end);
void qiu_cha(int n);
void  cun_chu(int cha);
int exit_1(int n);
void pan_duan(int cha);


int i;
int j;
int t;


k=0;
while(n)
{
*(p+k)=n%10;
n=n/10;
k++;
}


if(k<5)
for(i=k;i<5;i++)
*(p+i)=0;


 
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{
if(*(p+i)>*(p+j))
{
t=*(p+i);
*(p+i)=*(p+j);//升序
*(p+j)=t;
}
}

}


void qiu_cha(int n)
{
void print(int begin,int end);
void chong_pai(int n,int *p);
void  cun_chu(int cha);
int exit_1(int n);
void pan_duan(int cha);


int max;
int min;
int i;
int cha;


chong_pai(n,a);



min=0;
for(i=0;i<5;i++)
min=min*10+a[i];


max=0;
for(i=4;i>=0;i--)
max=max*10+a[i];


cha=max-min;


pan_duan(cha);

}


void  cun_chu(int cha)
{


void print(int begin,int end);
void chong_pai(int n,int *p);
void qiu_cha(int n);
int exit_1(int n);
void pan_duan(int cha);


hei[len++]=cha;
qiu_cha(cha);

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值