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

来源:互联网 发布:同花顺龙虎榜数据 编辑:程序博客网 时间:2024/06/05 18:45

题目:http://www.patest.cn/contests/pat-b-practise/1005

代码:

#include <stdio.h>int main(){  int k,i,j,m,z;  int a[100],b[100],c[100];  scanf("%d",&k);  int change(int);  for (i=0;i<k;i++)  {    scanf("%d",&a[i]);    b[i] = 1;  }  for (i=0;i<k;i++)  {    m = a[i];    while(m!=1)    {            for (j=0;j<k;j++)      {        if(i == j)          continue;        if (m == a[j])          b[j] = 0;      }      m = change(m);    }  }  j = 0;  for (i=0;i<k;i++)  {    if (b[i]==1)    {      c[j] = a[i];      j++;    }  }  for (i=0;i<j;i++)  {    for (z=i;z<j;z++)    {      if (c[i]<=c[z])      {        m = c[i];        c[i] = c[z];        c[z] = m;      }    }  }  for (i=0;i<j-1;i++)    printf("%d ",c[i]);  printf("%d",c[j-1]);  return 0;}int change(int m){  if (m%2==0)    m = m/2;  else    m = (3*m+1)/2;  return m;}
0 0
原创粉丝点击