hdu1041Computer Transformation

Computer Transformation

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9215    Accepted Submission(s): 3454

http://acm.hdu.edu.cn/showproblem.php?pid=1041
 

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

题意:开始序列只有1,1变成01 , 0变成10,问第i次有几对0?

如:1:  1

        2:  01

        3:  1001

代码:

import java.util.*;
import java.math.*;
public class Main {
	public static void main(String[] args) {
		Scanner cin=new Scanner(System.in);
		BigInteger a=BigInteger.valueOf(0);
		BigInteger b=BigInteger.valueOf(1);
		BigInteger c=BigInteger.valueOf(2);
		BigInteger sum;
		while(cin.hasNext())
		{
			int n=cin.nextInt();
			if(n==1)
				sum=a;
			else if(n==2)
				sum=b;
			else{
				sum=b;
				for(int i=3;i<=n;i++) {
					if(i%2!=0) {
						sum=sum.multiply(c);
						sum=sum.subtract(b);
					}
					else {
						sum=sum.multiply(c);
						sum=sum.add(b);
					}
					
				}
			}
			System.out.println(sum);
		}
		cin.close();
	}
}

猜你喜欢

转载自blog.csdn.net/sunny_hun/article/details/81743482
今日推荐