1005. 继续(3n+1)猜想 (25)

来源:互联网 发布:arp mac ip 编辑:程序博客网 时间:2024/05/01 20:01
#include<iostream>#include<cstdio>using namespace std;int flag[100] = {};int num[100] = {};int i;int record[1000][1000] = {};int main(){    void Find(int a, int b);    void Sort(int a[], int n);    int k;    int pos;    char c = '0';    int end[1000] = {};    cin >> i;    for (k = 0; k < i; k++)    {        cin >> num[k];    }    Sort(num, k);    for (k = 0; k < i; k++)    {        Find(num[k], k);    }    for (k = 0; k < i; k++)    {        if (flag[k] == 0)        {            pos = k;            break;        }    }    cout << num[pos];    for (k =pos+1; k < i; k++)    {        if (flag[k] == 0)        {            cout <<" "<< num[k];        }    }    system("pause");    return 0;}void Find(int a, int b){    int j = 0;    int m;    int t1;    while (a != 1)    {        if (a % 2 == 0)        {            a /= 2;            record[b][j++] = a;        }        else        {            a = (3 * a + 1) / 2;            record[b][j++] = a;        }    }    j = j - 1;    t1 = j;    for (m = 0; m < i; m++)    {        j = t1;        while (j >= 0)        {            if (record[b][j] == num[m])            {                flag[m] = 1;                break;            }            j--;        }    }}void Sort(int a[], int n){    int j;    int q;    int temp;    for (j = 0; j < n; j++)    {        for (q = 0; q < n - j - 1; q++)        {            if (a[q]<a[q + 1])            {                temp = a[q];                a[q] = a[q + 1];                a[q + 1] = temp;            }        }    }}
0 0
原创粉丝点击