2013级C++第18周——收官来战

简介: 课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759Problem A: 1-n之间能够被m整除的数的和Description输入n和m,输出1-n之间能够被m整除的数的和,例如:输入35 7,输出的是1-35之间所以能够被7整除的数的和,即7+14+21+28+35=105Input两个正整数n和mOutput1-

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


目录
相关文章
新增“蚂蚁游学参观”议程,2024隐私计算产业趋势沙龙报名倒计时!12.27相约上海
新增“蚂蚁集团游学参观”行程,12月27日相约上海蚂蚁S空间会议室,同时可在b站、视频号预约线上直播,关注“摩斯隐私计算论坛”。
新增“蚂蚁游学参观”议程,2024隐私计算产业趋势沙龙报名倒计时!12.27相约上海
倒计时1.5小时 直击阿里双十一作战现场
倒计时1.5小时 直击阿里双十一作战现场
倒计时1.5小时  直击阿里双十一作战现场
|
人工智能 弹性计算 异构计算
周五午后直播预告:预见云时代下计算驱动的未来
5月22日(周五)14:00,英迈全球副总裁、中国区首席执行官邵岩鸣、阿里巴巴集团副总裁郭继军一起打Call,共同为您解密预见云时代下计算驱动未来的思考,共同打造 “人工智能上云服务最佳解决方案”。
周五午后直播预告:预见云时代下计算驱动的未来
|
Web App开发 安全 网络安全
|
监控 Java 大数据
8月27日云栖精选夜读 | 北京房租大涨?6个维度,数万条数据帮你揭穿
昨天还幻想海边别墅的年轻人,今天可能开始对房租绝望了。 8月初,有网友在“水木论坛”发帖控诉长租公寓加价抢房引起关注。据说,一名业主打算出租自己位于天通苑的三居室,预期租金7500元/月,结果被二方中介互相抬价,硬生生抬到了10800。
2441 0
|
存储 安全 大数据
零点之战!探访阿里巴巴8大技术专家,提前揭秘2017双11关键技术
在距离双11已经不到10天的这个时刻,一场看不见硝烟的战争似乎已经打响。面对双11期间极为严苛的技术压力,阿里巴巴究竟是用怎样的方式进行解决的呢?在接下来的文段中,就让我们一起来对阿里巴巴在2017双11背后的技术进行一次细致的了解和探访。
16498 0

热门文章

最新文章