1.编写函数正整数的每个位上的数字逆序输出
#include <iostream>
using namespace std;
void reverseDigit(int num)
{
int n=num,i=0;
//判断num是几位数
while(n>0)
{
n=n/10;
i++;
}
int a[100];
for(int j=0;j<i;j++)
{
a[j]=num%10;
num=num/10;
}
for(int k=0;k<i;k++)
{
cout<<a[k]<<" ";
}
}
int main()
{
int N;
cout<<"输入一个正整数"<<endl;
cin>>N;
reverseDigit(N);
//system("pause");
return 0;
}
2.用递归方式求解这个问题:一只母兔从四岁开始每年生一只小母兔,按此规律,第n年时有多少只母兔?
自己的思考:
#include <iostream>
using namespace std;
int rabbitNumber(int n)
{
int y=0,sum=1;
if(n>0)
{
//兔子在长大
y++;
//这一年兔子几岁了?
if(y>=4)
{
//可生一个孩子
sum++;
}
//这一年有几个兔子?
if(sum>1)
{
//有?只老兔子,配合N,前7年只有一只,之后每年多一只老兔子双倍增长。前7年有4只兔子,1只老兔子
if(n>7)
{
sum=sum+2;
}
else
sum++;
}
rabbitNumber(n-1);
return sum;
}
return 0;
}
int main()
{
cout<<rabbitNumber(7)<<endl;
return 0;
}
这个结果显然不对,可是我有点思维混乱。百度下别人的写法:
https://blog.csdn.net/hannea/article/details/10949243
这个博客下面有人评论应该是f(n-3),我没想通,感觉作者的应该是对的,n=7的时候,是有5只兔子,