首页 > 其他 > 详细

friend(杭电1719)

时间:2015-03-22 18:09:00      阅读:253      评论:0      收藏:0      [点我收藏+]

Friend

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1994    Accepted Submission(s): 1003


Problem Description
Friend number are defined recursively as follows.
(1) numbers 1 and 2 are friend number;
(2) if a and b are friend numbers, so is ab+a+b;
(3) only the numbers defined in (1) and (2) are friend number.
Now your task is to judge whether an integer is a friend number.
 

Input
There are several lines in input, each line has a nunnegative integer a, 0<=a<=2^30.
 

Output
For the number a on each line of the input, if a is a friend number, output “YES!”, otherwise output “NO!”.
 

Sample Input
3 13121 12131
 

Sample Output
YES! YES! NO!
 

Source
 
解题思路:参考题解
#include<stdio.h>
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==0){
		printf("NO!\n");
		continue;}
		n++;
		while(n)
		{
			if(n%2==0)
			   n/=2;
			else
			   break;
		}
		while(n)
		{
			if(n%3==0)
			   n/=3;
			else
			   break;
		}
		if(n==1)
		printf("YES!\n");
		else
		printf("NO!\n");
	}
	return 0;
}

friend(杭电1719)

原文:http://blog.csdn.net/hdd871532887/article/details/44539049

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!