#include<iostream>
#define Max 1010
using namespace std;
int a[Max/2], aa[Max/2], b[Max];//开始的时候b的数组开小了W了
void A(int n)
{
int i = 0;
while(n != 1)
{
if(n % 2 == 0)
n /= 2;
else
n = (3 * n +1) / 2;
b[i++] = n;
}
b[i] = '\0';
}
int main()
{
int n;
while(scanf("%d", &n) != EOF && n)
{
int i;
memset(aa, 0, sizeof(aa));
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
for(i = 0; i < n; i++)
{
if(aa[i] == 0)//这个不加会超时的
{
A(a[i]);
for(int j = 0; j < n; j++)
{
for(int k = 0; a[k] != '\0'; k++)
{
if(a[j] == b[k])
aa[j] = 1;
}
}
}
}
bool p = false;
for(i = n-1; i >= 0; i--)
{
if(aa[i] == 0)
{
if(p)
printf(" ");
p = true;
printf("%d",a[i]);
}
}
printf("\n");
}
return 0;
}
本文介绍了一个使用C++编写的程序,该程序通过一系列数学运算来分析输入的数据,并记录下未出现特定转换路径的数据项。主要关注如何利用数组进行数据记录与处理。
700

被折叠的 条评论
为什么被折叠?



