1041
Posted tookkke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1041相关的知识,希望对你有一定的参考价值。
Computer Transformation
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7258 Accepted Submission(s): 2652
Problem Description A sequence consisting of one digit, the number 1 is initially written into a computer. At each successive time step, the computer simultaneously tranforms each digit 0 into the sequence 1 0 and each digit 1 into the sequence 0 1. So, after the first time step, the sequence 0 1 is obtained; after the second, the sequence 1 0 0 1, after the third, the sequence 0 1 1 0 1 0 0 1 and so on.
How many pairs of consequitive zeroes will appear in the sequence after n steps?
Input Every input line contains one natural number n (0 < n ≤1000).
Output For each input n print the number of consecutive zeroes pairs that will appear in the sequence after n steps.
Sample Input
2 3
Sample Output
1 1
Source Southeastern Europe 2005
找规律+大数运算(这里就直接使用自己写好的模版了,才不是偷懒呢)
递推公式为F[n]=F[n-1]+2*F[n-2];
可以求出通项公式是 F[n]=(2^(n-1)+(-1)^n)/3;
关于模版的在http://blog.csdn.net/tookkke/article/details/51366490
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include "longint.h"
using namespace std;
const longint a=2,b=3,c=1;
int n;
int main()
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
while(scanf("%d",&n)==1)
if(n&1)cout<<((a^(n-1))-c)/b;
else cout<<((a^(n-1))+c)/b;
putchar('\\n');
return 0;
以上是关于1041的主要内容,如果未能解决你的问题,请参考以下文章