#include <stdio.h>
#include <stdlib.h>
void bubbleSort(int *p, int n)
{
int i, j, tmp;
for(i = 0; i < n; i++)
{
for(j = 0; j < n - i -1; j++)
{
if(p[j] < p[j+1])
{
tmp = p[j];
p[j] = p[j+1];
p[j+1] = tmp;
}
}
}
}
int main()
{
int n, i, j, tmp;
int *arr = NULL, *flag = NULL, *ans;
scanf("%d", &n);
arr = (int *)malloc(n * sizeof(int));
flag = (int *)malloc(n * sizeof(int));
ans = (int *)malloc(n * sizeof(int));
for(i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
flag[i] = 0;
}
for(i = 0; i < n; i++)
{
tmp = arr[i];
while(tmp != 1)
{
if(tmp & 1)
{
tmp = (tmp*3 + 1) / 2;
}
else
{
tmp /= 2;
}
for(j = 0; j < n; j++)
{
if(tmp == arr[j])
{
flag[j] = 1;
}
}
}
}
j = 0;
for(i = 0; i < n; i++)
{
if(!flag[i])
{
ans[j++] = arr[i];
}
}
bubbleSort(ans, j);
for(i = 0; i < j; i++)
{
if(i == j-1)
{
printf("%d\n",ans[i]);
}
else
{
printf("%d ",ans[i]);
}
}
return 0;
}
PAT乙級 1005繼續3n+1猜想(C語言)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.