F - Hexadecimal's theorem

Recently, a chaotic virus Hexadecimal advanced a new theorem which will shake the Universe. She thinks that each Fibonacci number can be represented as sum of three not necessary different Fibonacci numbers.

Let’s remember how Fibonacci numbers can be calculated. F0 = 0, F1 = 1, and all the next numbers are Fi = Fi - 2 + Fi - 1.

So, Fibonacci numbers make a sequence of numbers: 0, 1, 1, 2, 3, 5, 8, 13, …

If you haven’t run away from the PC in fear, you have to help the virus. Your task is to divide given Fibonacci number n by three not necessary different Fibonacci numbers or say that it is impossible.

Input
The input contains of a single integer n (0 ≤ n < 109) — the number that should be represented by the rules described above. It is guaranteed that n is a Fibonacci number.

Output
Output three required numbers: a, b and c. If there is no answer for the test you have to print “I’m too stupid to solve this problem” without the quotes.

If there are multiple answers, print any of them.

Examples
Input
3
Output
1 1 1
Input
13
Output
2 3 8

题中给出一个斐波那契数n,要求将n分成三个斐波那契数的和。有多种答案时给出其中一种。
这道题就像是脑筋急转弯。如果按照题意常规写代码,不仅麻烦还容易出错。我最开始的四十分钟里按照常规方法做,就把自己拽到了一条死路上。
因为0是斐波那契数,n是斐波那契数,因此我们输出0,0,n就可以了。

代码如下:

#include"stdio.h" 
int main()
{
 	int n; 
 	while(~scanf("%d",&n))
    {
	      printf("%d %d %d\n",0,0,n); 
	}
	return 0;
}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值