第三周作业

来源:互联网 发布:excel表格设置筛选数据 编辑:程序博客网 时间:2024/06/06 06:57

第三周作业

1.打印3个相邻字母

题目内容:
当用户输入一个英文字母后,程序能够按照字母表的顺序打印出3个相邻的字母,其中用户输入的字母在中间。
程序运行结果如下:
d
cde
这里假设字母表首尾两个字母是相连的。若输入字母Z,则程序输出YZA。

输入格式:
一个字符,可能为大写,也可能为小写。

输出格式:
连续3个字符,大小写不变。

输入样例:
d

输出样例:
cde

时间限制:2000ms内存限制:32000kb

#include<bits/stdc++.h>using namespace std;char a,b,c;int main(){    cin>>b;    if((b>'a'&&b<'z')||(b>'A'&&b<'Z')){        a=b-1;        c=b+1;        cout<<a<<b<<c;    return 0;    }

2.歌唱大赛选手成绩计算

题目内容:
歌唱大赛选手成绩计算方法如下:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后成绩。这里假设共有10位评委,都是按照百分制打分。
程序运行结果如下:
88 90 97 89 85 95 77 86 92 83
88.5
如果评委给出的成绩不在0~100分之间,将给出错误提示。
程序运行结果如下:
101 90 97 89 85 95 77 86 92 83
the score is invalid.

输入格式:
10个0~100分之间的数

输出格式:
1个可以表示小数的数或者提示信息“the score is invalid.”
平均值变量使用double型。

输入样例:
88 90 97 89 85 95 77 86 92 83

输出样例:
88.5

时间限制:2000ms 内存限制:32000kb

//代码中被注释掉的是调试的时候用的。。。表介意O(∩_∩)O蟹蟹#include<bits/stdc++.h>using namespace std;int a[10];int sum=0;double ans;int main(){    for(int i=0;i<10;i++)cin>>a[i];    //for(int i=0;i<10;i++)cout<<a[i];    //cout<<endl;    //88 90 97 89 85 95 77 86 92 83 样例输入    sort(a,a+10);//  for(int i=0;i<10;i++)cout<<a[i];//  cout<<endl;    for(int i=9;i>=0;i--){        if(a[i]>100||a[i]<0){            cout<<"the score is invalid.";            exit(0) ;        }    }    //for(int i=0;i<10;i++)cout<<a[i];    for(int i=1;i<9;i++)sum+=a[i];    ans=sum/8.0;    cout<<ans;    return 0;}

3.猴子吃桃

题目内容:
有一天,某只猴子摘了一些桃子,当时吃了一半,又不过瘾,于是就多吃了一个。以后每天如此,到第n天想吃时,发现就只剩下一个桃子。输入n,表示到第n天剩下1个桃子,请计算第一天猴子摘的桃子数。
程序运行结果如下:
10
1534

输入格式:
输入一个整数n,表示到第n天剩下1个桃子。

输出格式:
一个整数,表示第1天摘的桃子数。

输入样例:
10

输出样例:
1534

时间限制:2000ms内存限制:32000kb

#include<bits/stdc++.h>using namespace std;int main(){int ans=1,n,i=1;cin>>n;while(i<n){ans=(ans+1)*2;i++;}cout<<ans<<endl;}

4.搬砖问题

题目内容:
现有n块砖,要由n人一次搬完,假定男人一次可以搬4块,女人一次可以搬3块,两个小孩搬1块,计算这n人中男人、女人和小孩的人数。输入人数和砖数n,输出可能的解决方案。
程序运行结果如下:
50
men0
women10
children40
men5
women3
children42
如果没有满足的情况,显示提示信息“no result!”
程序运行结果如下:
1
no result!

输入格式:
表示人数的整型数

输出格式:
所有满足条件的男人、女人和孩子的人数或者提示信息“no result!”
输出格式见样例。有多组方案时,按男人数量从少到多的顺序输出。男人数量相同时,女人数量从少到多。

输入样例:
50

输出样例:
men0
women10
children40
men5
women3
children42

时间限制:2000ms内存限制:32000kb

#include<bits/stdc++.h> //话说介个是万能库。。。(懒人必备)using namespace std;int main(){    int men,women,children;    int n;    int x,y,z;    cin>>n;    for(men=0;men<=n/4;men++)    {        for(women=0;women<=n/3;women++)        {            children=2*(n-4*men-3*women);            if(children>0&&children==n-men-women)            {                x=men;y=women;z=children;                cout<<"men"<<men<<endl;                cout<<"women"<<women<<endl;                cout<<"children"<<children<<endl;            }        }    }    if(x==0||y==0||z==0)        cout<<"no result!"<<endl;return 0;}

5.美分找钱

题目内容:
将n美分转换成25、10、5和1美分的硬币总共有多少种转换方法?
运行结果如下:
25
13
如果n不在0~99之间,输出提示信息“the money is invalid!”
运行结果如下:
101
the money is invalid!

输入格式:
整数,表示美分数
输入可能不是[0,99]之间的整数。输入不在该区间时,输出为“the money is invalid!”。

输出格式:
转换方法数或者提示信息“the money is invalid!”(不带引号啊,单词间只有一个空格)
单词间zhiyou

输入样例:
25

输出样例:
13

时间限制:2000ms内存限制:64000kb

//表示这段代码有参考网上的答案。。。(因为一开始不会2233)#include <bits/stdc++.h>using namespace std;int main(){    int n, i, j, t, num = 0;    int a[3]={25,10,5};    cin >> n;    if(n>99 || n<0) cout << "the money is invalid!";    else{             for(j=n/a[0];j>=0;j--)              {                    int x = n - j * a[0];                                 for(t=x/a[1];t>=0;t--){                                     int y = x - t * a[1];                         for(i=y/a[2];i>=0;i--){                            num++; }                    }              }    cout << num << endl; }    return 0;    }
0 0
原创粉丝点击