《c++程序设计》课程设计报告
班级:数学三班 学号:2018212794
报告人姓名:高樱洁
实验地点: 东校区413机房
完成起止日期:2019.1.2—2019.1.4
Problem D
题目简介:判断区间内变量对应表达式的值是否全为素数。
思路:数据有多组,所以是多组输入;对于每个值都要进行相同的操作,即判断函数值是否为素数,所以自定义函数,以简化程序。
细节:判断全为素数时,可定义一个变量,比较变量与区间个数的大小;
要输出的“OK”全为大写,为防止出错,可直接复制粘贴;
注意换行;
用while(cin>>x>>y,!(x==0&&y==0))控制数据输入及结束。
源代码:#include<iostream>
#include<cmath>
using namespace std;
int prime(int);
int main()
{
int x,y,m;
while(cin>>x>>y, !(x==0&&y==0))
{
int k=0;
for(int i=x;i<=y;i++)
{
m=i*i+i+41;
if(prime(m))
k++;
else
{
cout<<"Sorry"<<endl;
break;
}
}
if(k==y-x+1)
cout<<"OK"<<endl;
}
}
int prime(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}
Problem F
题目简介:求长为n的递增偶数序列,每m个数的平均值,最后的以实际个数求平均值。
思路:分别设置变量控制m个数及m个数的和
细节:记和变量及时清零;
数据之间空格间隔,行末无空格。
源代码:
#include<iostream>
using namespace std;
int a[100];
int main()
{
int n,m,j;
while(cin>>n>>m)
{
int k=0;
for(int i=1;i<=n/m;i++)
{
int sum=0;
if(k>0)
cout<<" ";
for(j=1;j<=m;j++)
{
k+=2;
sum+=k;
}
cout<<sum/m;
}
if(n%m)
{
int sum=0;
for(j=1;j<=n-n/m*m;j++)
{
k+=2;
sum+=k;
}
cout<<" "<<sum/(j-1);
}
cout<<endl;
}
return 0;
}
Problem H
题目简介:有一母牛每年生一头小母牛,小母牛第四年成为母牛,求n年时有多少牛。
思路: 先算一下前几年的母牛数,发现数排列起来为:1,2,3,5,8……,满足递推关系f(n)=f(n-1)+f(n-2),即斐波那契数列。
细节:不要忘记边界情况,把前几项单独列出。
源代码:
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n,n!=0)
{
int f1=1,f2=2,f3=3,f4;
for(int i=3;i<=n;i++