《c++程序设计》课程设计报告
班级:数学类3班 学号:2018212742
报告人姓名:张琦
实验地点: 计算机实验室413
完成起止日期: 2019.1.2——2019.1.4
1
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
对于每个测试实例,输出在第n年的时候母牛的数量。每个输出占一行
思路:分别设出代表1,2,3,4岁母牛的数量,然后分类讨论前四年和四年以后。前四年总数等于年数n,四年后用循环来计算母牛年龄的增加和产生的牛的数量。
答案:
#include
#include<math.h>
#include<stdio.h>
#include
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n0)
break;
int a,b,c,d; //分别代表一岁二岁三岁四岁及其以上的母牛的数目。
if(n<=4)
cout<<n<<endl; //若n<=4,很容易得出总数为n
else{
n=n-4;
a=b=c=d=1;
for(int i=0;i<n;i++)
{
d=c+d;//当年大母牛数目d为前一年c和d的总和
c=b;//b母牛长了一岁到了c
b=a;//同上
a=d;//长成的母牛和原本的母牛共生出新的小母牛a个
}
cout<<a+b+c+d<<endl;
}
}
}
细节分析:用循环来计算母牛年龄的增加和产生的牛的数量。以四年为节点分类讨论。
2
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。现在要求输出所有在m和n范围内的水仙花数。
思路:用循环的方法输入m,n之间所有的数,再根据题意挑选。
细节处理:此题应注意输出的格式,及最后一位后无空格。
答案:
#include<math.h>
#include<stdio.h>
#include
using namespace std;
int main()
{
int n,m,a,b,c,i,x,e;
while(cin>>n>>m)
{
x=0;
e=0;
for(i=n;i<=m;i++)
{
a=i/100;
b=(i%100)/10;
c=i%10;
if(iaaa+bbb+ccc)
{ if(e==0)
{x++;
e++;
cout<<i;}
else {cout<<" "<<i;}
}}
if(x0)
cout<<“no”<<endl;
else cout<<endl;
}
}
细节分析:用循环的方法输入数据,用if来判断是否符合条件。输出时应注意格式。
3
给你n个整数,求他们中所有奇数的乘积。
思路:p%2!=0即为奇数。
答案:#include
#include<math.h>
#include<stdio.h>
#include
using namespace std;
int main()
{
int n,m,i,p;
while(cin>>n)
{
m=1;
for(i=0;i<n;i++)
{
c