黑洞数算法

来源:互联网 发布:linuxmint ubuntu 编辑:程序博客网 时间:2024/05/01 06:05
呵呵,想了有四十多分钟吧,要是我头脑能更快点就好了,程序的时间复杂度很小,而且思绪也有点乱。
#include "iostream"#include "stdlib.h"using namespace std;int cave(int *p){    int mov;    for (int i=0;i<5;i++)        for (int j=0;j<i;j++)    {        if (*(p+i)>*(p+j))        {            mov=*(p+i);            *(p+i)=*(p+j);            *(p+j)=mov;        }    }    return 0;}int main(){    int Starts=0;       int n=4;    int num[5];    int sub[30];    int *p=num;    int num_start;    cin>>num_start;mm:    int sum=100000;    for (int i=0;i<5;i++)    {            sum=sum/10;            num[4-i]=num_start/sum;            num_start=num_start%sum;    }    cave(p);    int sum_one,sum_two,sum_sub;    sum_one=*p * 10000+*(p+1) * 1000 + *(p+2) * 100+ *(p+3) * 10+ *(p+4) *1;    sum_two=*p * 1+*(p+1) * 10 + *(p+2) * 100+ *(p+3) * 1000+ *(p+4) *10000;    sum_sub=sum_one-sum_two;    sub[Starts]=sum_sub;    for (int l=0;l<Starts;l++)    {        if (sum_sub==sub[l])        {            cout<<endl;            cout<<"从"<<sum_sub<<"开始循环"<<endl;            getchar();            getchar();            exit(-1);        }    }    Starts++;    cout<<sum_sub<<" ";    num_start=sum_sub;    goto mm;    cout<<sum_one<<endl<<sum_two<<endl;    return 0;}



原创粉丝点击