首页 > 学院 > 开发设计 > 正文

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

2019-11-14 10:41:25
字体:
来源:转载
供稿:网友

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

此题参考了网友的代码,直呼过瘾,对于当下水平的我而言,对于这题的解题思路与方法实在令人佩服。。。
#include <stdio.h>int main(){	int n,k,num[101],i;	for(i=0;i<101;i++){		num[i]=-1;	}	scanf("%d",&k);	for(i=0;i<k;i++){		scanf("%d",&n);		num[n]=0;	}		for(i=0;i<101;i++)	{		if (num[i]!=0)		{			continue;				}			n=i;			while(n!=1){			if(n%2==0)			{				n=n/2;				if(n<=100){						num[n]=1;				}						}			else{				n=(3*n+1)/2;				if(n<=100){				num[n]=1;					}											}		}			}	int length=0;	for(i=0;i<101;i++){		if(num[i]==0){			length++;		}	}	for(i=100;i>1;i--)	{		if(num[i]==0){			length--;			if(length==0){				PRintf("%d",i);			}			else{				printf("%d ",i);			}		}	}			return 0;	}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表