C++ 程序设计,数字黑洞6174

C++ 程序设计,数字黑洞6174,第1张

#include <stdio.h>

void sort(int a[],int left,int right)

{

     int i,j,t

     i=left,j=right+1

     if(left<right){

      while(1){

       while(i+1<right+1&&a[++i]<a[left])

       while(j-1>left-1&&a[--j]>a[left])

       if(i>=j)break

       t=a[i],a[i]=a[j],a[j]=t

      }

      t=a[left],a[left]=a[j],a[j]=t

      sort(a,left,j-1)

      sort(a,j+1,right)

     }

}

int main()

{

    int a,b[4],ma,mi,i

    scanf("%d",&a)

    for()

    {

        for(i=0i<4i++)b[i]=a%10,a/=10

        sort(b,0,3)

        ma=b[3]*1000+b[2]*100+b[1]*10+b[0]

        mi=b[3]+b[2]*10+b[1]*100+b[0]*1000

        a=ma-mi

        printf("%d-%d=%d\n",ma,mi,a)

        if(a==6174)break

    }

    return 0

}

用Java实现的打印5位数里面所有循环圈的程序如下:

public class XunHuanQuan {

/**

* @param args 数字黑洞

*/

static int r=0

static int b[]=new int[16]

static int c[]=new int[5]

static int sort(int n,boolean boo) //排序函数

{

int i,j,sum=0,temp

int a[]=new int[5]

for(i=0i<5i++)

{

a[i]=n%10

n/=10

}

for(j=0j<4j++)

for(i=0i<4-ji++)

{

if(a[i]<a[i+1]&&boo)

{

temp=a[i]

a[i]=a[i+1]

a[i+1]=temp

}

if(a[i]>a[i+1]&&!boo)

{

temp=a[i]

a[i]=a[i+1]

a[i+1]=temp

}

}

for(i=0i<5i++)

sum+=a[i]*(int)Math.pow(10,4-i)

return sum

}

static boolean Boo(int d[])//判断函数

{

int n,t,q,i,j

boolean flag=true

for(i=0i<16i++)

for(j=i+1j<16j++)

if(b[i]==b[j])//判断是否有循环圈存在,只需要判断是否有相同的一个数出现2次就够了

{

d[0]=i

d[1]=j

n=j-i

for(q=0q<=rq++)

for(t=it<=jt++)

if(c[q]==b[t]) flag=false//用一维数组存放循环圈的一位数(任意一位都可以,这里选取第一位)

if(flag) c[r++]=b[i]//如果新生成的循环圈中的任何一位与原一维数组存放的值的不同 则再取循环圈的一位保存

return flag

}

return flag

}

public static void main(String[] args)

{

int n,m,w,t,p

int r=1

boolean flag=false

int d[]=new int[2]

for(m=10000m<100000m++)

{

n=m

for(p=0p<16p++)

{

w=sort(n,true)-sort(n,false)

b[p]=w

n=w

}

if(Boo(d))//输出不同的循环圈

{

System.out.printf("[")

for(t=d[0]t<d[1]-1t++)

System.out.printf("%d,",b[t])

System.out.printf("%d",b[t])

System.out.printf("]\n")

}

}

}

}

运行结果:

[74943,62964,71973,83952]

[63954,61974,82962,75933]

[53955,59994]


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

原文地址: http://outofmemory.cn/yw/11582000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存