《c++程序设计》
课程设计报告
班级:数学4班
学号:2018212824
报告人姓名:沈园园
实验地点:山东农业大学东校区教学楼
完成起止日期:2019.1.1——2019.1.5
1
Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
题目思路,输入题目数据,判断可否被m整除,分情况求平均。
#include<iostream>
using namespace std;
int main()
{
int m,n;
while(cin>>n>>m)//循环结构
{
int b=n;
for(int i=2;i<=2*n;i+=2*m)//i的增量是2*m
{
int s=0,a;
if(b/m!=0)//如果b不能被m整除
{
for(int j=i;j<=i+2*(m-1);j+=2)
{
s+=j; //偶数列加和
}
a=s/m; //求平均
cout<<a;
if(b!=m) cout<<" ";
}
if(b/m==0)//如果b能被m整除
{
for(int h=i;h<=i+2*(b-1);h+=2)
{
s+=h;偶数列加和
}
a=s/b;//求平均
cout<<a;
}
b-=m;//b的减量是m
}
cout<<"\n";
}
return 0;
}
2
Problem Description
求A^B的最后三位数表示的整数。
说明:A^B的含义是“A的B次方”
Input
输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。
Output
对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。
题目思路,输入数据,判断是否为0,符合进入循环程序,取余后三位。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,i,p;
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a==0&&b==0)
{
break; //a与b其一为0停止循环
}
p=a%1000; //取余后三位
a=1;
for(i=1;i<=b;i++)
{
a=a%1000;
a=a*p; //计算a的b次方
}
printf("%d\n",a%1000); //取余后三位
}
return 0;
}
3
Problem Description
妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。
Input
输入含有一些数据组,每组数据包括菜种(字串),数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的。
Output
支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉。最后,请输出一个精度为角的菜价总量。
题目思路,输入菜价和数量,总和为各加和。输出。
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char a[100];
double m,n,k=0;//定义m n
while(cin>>a>>m>>n)
{
k+=m*n;//k为mn乘积的和
}
printf("%.1lf\n",k);//输出k保留一位小数
return 0;
}
4
Problem Description
HDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱。
这个题目的A和