解题思路:
本来想开两个数组来模拟字符串的变化,可是来回赋值一想就有些头大,于是写出了前几个的打印结果,想找找规律,写的时候就有点感觉可以用递归来做,写完以后终于找到规律。
先写出前五个打印的结果:
0 0
1 1
2 01
3 101
4 01101
会发现第n个是由第n-2个和第n-1个拼接而成,例如n=4 可以拆出01 101,所以递归如下:
#include<stdio.h> void ff(int n){ if(n==0)printf("0"); if(n==1)printf("1"); if(n>=2){ ff(n-2); ff(n-1); } } int main() { int n; scanf("%d",&n); ff(n); return 0; }
0.0分
155 人评分
C二级辅导-等差数列 (C++代码)浏览:2220 |
拆分位数 (C++代码)用char简单粗暴,嗯浏览:1087 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:562 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:688 |
K-进制数 (C++代码)浏览:858 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:686 |
C语言训练-立方和不等式 (C语言代码)浏览:751 |
WU-拆分位数 (C++代码)浏览:787 |