Friend 1719 (数学+技巧+规律)
2015-08-23 09:12
351 查看
Friend
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2200 Accepted Submission(s): 1103
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!
//看了半天没看懂,最后看了一下题解才知道规律 //a=1;b=2; //=a*b+a+b=(a+1)(b+1)-1 === >>c+1=(a+1)(b+1); //所以输入的数+1,只要是2或者3的倍数就是了 #include<stdio.h> #include<string.h> #include<math.h> int main(){ int n,m,i,j; while(scanf("%d",&n)!=EOF) { if(n<1) printf("NO!\n"); else { n=n+1; while(n%2==0) n/=2; while(n%3==0) n/=3; if(n==1) printf("YES!\n"); else printf("NO!\n"); } } return 0; }
相关文章推荐
- This Virtual Machine Is Configured For 64-bit Guest Operating Systems
- Little定律
- javascript中Array()数组函数详解
- C/C++编译器与链接器工作原理
- Activity生命周期解决(有图有真相)
- 线程与多线程的概念
- 什么是:VGA SVGA XGA SXGA
- [NOIP2008]笨小猴
- [OpenGL]OpenGL坐标系和坐标变换
- 数据库连接JDBC工具类
- 【C语言】C语言预处理命令总结
- linux命令大全
- 大端小端
- Spark修炼之道(基础篇)——Linux大数据开发基础:第二节:Linux文件系统、目录(一)
- ListBuffer、ArrayBuffer、Queue、Stack操作代码实战之Scala学习笔记-30
- c/c++ 求字符数组长度(非所占内存大小)
- Android SD卡创建文件和文件夹失败
- 25.Reverse Nodes in k-Group (List)
- Lock synchronized区别
- [Java]Leetcode236 Lowest Common Ancestor of a Binary Tree