解题思路:
本来想开两个数组来模拟字符串的变化,可是来回赋值一想就有些头大,于是写出了前几个的打印结果,想找找规律,写的时候就有点感觉可以用递归来做,写完以后终于找到规律。
先写出前五个打印的结果:
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语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:482 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:625 |
九宫重排 (C++代码)浏览:2160 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:544 |
十->二进制转换 (C语言代码)浏览:1291 |
小明A+B (C语言代码)浏览:1248 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:518 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:619 |
众数问题 (C语言代码)浏览:825 |
a+b浏览:432 |