课程主页在: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菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======