课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759
Problem A: 1-n之间能够被m整除的数的和
Description输入n和m,输出1-n之间能够被m整除的数的和,例如:输入35 7,输出的是1-35之间所以能够被7整除的数的和,即7+14+21+28+35=105
Input
两个正整数n和m
Output
1-n之间能够被m整除的数的和
Sample Input
35 7
Sample Output
105
参考解答:
#include<iostream>
using namespace std;
int main()
{
int n, m, i, s=0;
cin>>n>>m;
for(i=m; i<=n; i+=m)
s+=i;
cout<<s;
return 0;
}
Problem B: 帮警长数一数【循环、分支简单综合】
Description黑猫警长在犯罪现场发现了一些血迹,现已经委托检验机构确定了血型,需要统计各种血型的样本数目。
Input
血型序列(A/B/O/C,C代表AB型血,输入以X结束)
Output
各种血型的数量
Sample Input
ABCAOCOAOOBX
Sample Output
A:3
B:2
O:4
AB:2
HINT
设置4个变量分别表示这4种血型的人数。利用一个循环读取输入的字符,直到读到X退出循环。在循环中,根据读到的字符,相应的变量递增即可。
参考解答
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a=0, b=0, ab=0, o=0;
char blood;
cin>>blood;
while(blood!='X')
{
switch (blood)
{
case 'A' :
a++;
break;
case 'B' :
b++;
break;
case 'C' :
ab++;
break;
case 'O' :
o++;
break;
}
cin>>blood;
}
cout<<"A:"<<a<<endl;
cout<<"B:"<<b<<endl;
cout<<"O:"<<o<<endl;
cout<<"AB:"<<ab<<endl;
return 0;
}
Problem C: 数字中的数字
Description输入一个3位以上的整数,求其中最大的两数字之和与最小的两个数字之和的差。例如:输入8729,输出8(即9+8-2-7=8),再如,输入24825,输出9(即8+5-2-2)。
Input
一个3位以上的整数
Output
输入的数据中,最大的两数字之和与最小的两个数字之和的差
Sample Input
8729
Sample Output
8
HINT
可以将整数的各位数取出后保存在数组中,将这些数排序后进行计算。
参考解答
#include <iostream>
using namespace std;
int main( )
{
int n,arr[15],num=0;
int i,j,t;
cin>>n;
t=n;
while(t>0)
{
arr[num++]=t%10;
t/=10;
}
//这样,n共有num位,在arr[0]-arr[n-1]中
for(j=0; j<num-1; j++) //共进行num-1趟比较
for(i=0; i<num-j-1; i++) //在每趟中要进行num-j次两两比较
if (arr[i]>arr[i+1]) //如果前面的数小于后面的数
{
t=arr[i]; //交换两个数的位置,使小数下沉
arr[i]=arr[i+1];
arr[i+1]=t;
}
//这样,数组中小者在前,大者在后
t=arr[num-1]+arr[num-2]-arr[0]-arr[1];
cout<<t;
return 0;
}
Problem D: 一元多项式求值
Description一元多项式是形如f(x)=a 0+a1·x+a2·x^2+...+an-1·x^(n-1)的式子,其中a0-an-1均为常数。要求输入x及一元多项式的系数,求出x的值。
Input
首先输入x,随后是不多于15个数据,表示多项式系数。如输入 2.5 3.2 4.3 5.6,代表求多项式f(x)=3.2+4.3x+5.6x^2在当x=2.5时的值,即f(2.5)。注意,多项式的最高次指数不定,不超过14次方即可。
Output
输出f(x)的值,结果小数点后保留3位。
Sample Input
2.5 3.2 4.3 5.6
Sample Output
48.950
参考解答
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
int n=0,i;
double x, a[15],sum=0;
cin>>x; //输入x
while(cin>>a[n])n++; //输入多项式系数
i=n-1; //最高项的次数为n-1,共n项
while(i>=0)
{
sum=sum*x+a[i--];
}
cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum;
return 0;
}
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新) ==|
|== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==|
======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章分类目录(不定期更新) ==|
|== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==|
======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======