编程题
斐波那契问题 ### 题目描述 斐波那契数是一个这样定义的整数:$F(0)=1$,$F(1)=1$,$F(i)=F(i-1)+F(i-2)$ $(2 \leq i)$,前几个数是这样的 $1, 1, 2, 3, 5, 8, \ldots$ 伟大的计算机学家 $\texttt{Byteazar}$ 正在做一个非凡的计算机,其中的数由斐波那契表示! 如一个数列 $b_1, b_2, \ldots , b_n$ 表示数字 $F(1) \times b_1+b_2 \times F(2)+ \ldots +b_n \times F(n)$(不使用 $F(0)$ )。 不幸的是,这样的表示并不明确,即相同的数字可以有不同的表示。比如 $42$ 可以表示为 $(0,0,0,0,1,0,0,1)$,$(0,0,0,0,1,1,1,0)$ 或 $(1,1,0,1,0,1,1)$,于是 $\texttt{Byteazar}$ 加了一个限制: - 如果 $n > 1$,那么$b_n=1$,即数字的表示不包含前导零。 - 如果 $b_i=1$,那么 $b_{i+1}=0$,即数字的表示不包含两个(或多个)连续的数字。 这个计算机的建设比 $\texttt{Byteazar}$ 所认为的要难,现在请你来帮帮他~。 你需要写一个程序: 读取两个正整数的表示,计算并向标准输出写入其和的表示。 ### 输入描述 输入的第一行先是一个正整数,为 $x$ 的斐波那契表示的长度,接下来的序列是 $x$ 的斐波那契表示。 第二行的第一个数字也是一个正整数,为 $y$ 的斐波那契表示的长度,接下来的序列是 $y$ 的斐波那契表示。 其中,$1\leq n \leq 10^6$ 。 ### 输出描述 输出只有一行程序,应写入$x+y$ 的和的斐波纳契表示(满足上述条件),同样是先输出一个正整数 $n$ ,表示 $x+y$ 的和的斐波纳契表示的长度,然后再输出 $x+y$ 的和的斐波那契表示。 ### 输入输出样例 #### 示例 1 >输入 ```txt 4 0 1 0 1 5 0 1 0 0 1 ``` >输出 ```txt 6 1 0 1 0 0 1 ```
查看答案
赣ICP备20007335号-2