~~~
# Computer Transformation
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6916????Accepted Submission(s): 2504
~~~
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
~~~
本題看起來也不難,但是注意一個問題就是當輸入的數值達到大約在40左右的時候,普通的int類型的數據就會發生溢出,無法存放這么大的數字,這就是大數啦,所以需要你特別的對大數進行一定的處理才能使得不發生溢出。一開始我做的時候就是沒有考慮到這個問題所以感覺結果明明是對的呀,但是就是一直出錯,后來終于發現大數溢出的問題,稍微改了下就好了。
~~~
import java.math.BigDecimal;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
int num = scanner.nextInt();
BigDecimal sum = new BigDecimal(0);
sum = funct(num);
System.out.println(sum);
}
}
public static BigDecimal funct(int i) {
BigDecimal[] array = new BigDecimal[i+1];
int sum = 0;
array[1] = new BigDecimal(0);
if(i == 1)
return array[1];
array[2] = new BigDecimal(1);
for(int j = 3; j <= i ; j++)
{
array[j] = array[j - 1].add(array[j - 2].multiply(new BigDecimal(2))) ;
}
return array[i];
}
}
~~~
- 前言
- 求和的問題ACM
- A+B問題acm
- 1091ACM求和
- 杭電ACM1092求和問題詳解
- ACM杭電的1093求和問題
- 杭電ACM1094計算A+B的問題
- 杭電ACM1095解決A+B問題
- 杭電ACM1096求和問題
- 杭電Acm1001解決求和的問題
- 杭電ACM1008電梯問題C++
- 杭電ACM大賽2000關于ASCII碼排序的問題
- 杭電ACM2006奇數的乘積
- 杭電ACM數值統計2008
- 杭電ACM1019求最大公約數
- 杭電ACM1108求最小公倍數
- 杭電ACM2035人見人愛的A^B
- 杭電ACM1061N^N求最右邊的數的問題
- 杭電ACM1021裴波納挈數AGAIN
- 杭電ACm1005求f(n)非遞歸
- 杭電ACM1071The area---------求積分面積
- 杭電ACM吃糖果問題
- 杭電ACm求數列的和2009
- 杭電ACM多項式求和--》2011
- 杭電ACM。。。sort
- 杭電ACM1004
- 杭電ACM2043密碼的問題已經AC
- 杭電ACM2041樓梯問題
- 動態規劃C++::杭電ACM1003
- 杭電ACM----2018母牛的故事
- 杭電ACM2007平方和與立方和
- 盧卡斯隊列
- 全國軟件2. 三人年齡
- 全國軟件3. 考察團組成
- 全國軟件--微生物增殖
- 全國軟件填寫算式
- 全國軟件-----------猜生日
- 全國軟件---------歐拉與雞蛋
- Java經典算法四十例編程詳解+程序實例
- 杭電ACMA + B Problem II問題解析
- 杭電ACM1018BigNumber解析
- 杭電ACM1088 Write a simple HTML Browser Java
- 杭電ACM1106排序Java代碼
- 杭電ACM 1012 u Calculate e java
- 杭電ACM 1020 Encoding java解析
- 杭電1047 An Easy Task - java 解讀
- 杭電ACM 1040 As Easy As A+B java 解讀
- 杭電ACM 1041 Computer Transformation java代碼詳解AC
- 杭電ACM 1030 Delta-wave java代碼解析