13-1打印3个相邻字母(20分)
题目内容:
当用户输入一个英文字母后,程序能够按照字母表的顺序打印出3个相邻的字母,其中用户输入的字母在中间。
程序运行结果如下:
d
cde
这里假设字母表首尾两个字母是相连的。若输入字母Z,则程序输出YZA。
输入格式:
一个字母字符,可能为大写,也可能为小写。
输出格式:
连续3个字符,大小写不变。
输入样例:
d
输出样例:
cde
时间限制:2000ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int main(){
char c, x,y;
cin>>c;
y=c+1;
x=c-1;
switch(c){
case 'a':
x='z';
break;
case 'A':
x='Z';
break;
case 'z':
y='a';
break;
case 'Z':
y='A';
break;
}
cout<<x<<c<<y;
return 0;
}
33-3猴子吃桃(20分)
题目内容:
有一天,某只猴子摘了一些桃子,当时吃了一半,又不过瘾,于是就多吃了一个。以后每天如此,到第n天想吃时,发现就只剩下一个桃子。输入n,表示到第n天剩下1个桃子,请计算第一天猴子摘的桃子数。
程序运行结果如下:
10
1534
输入格式:
输入一个整数n,n>0,表示到第n天剩下1个桃子。
输出格式:
一个整数,表示第1天摘的桃子数。
输入样例:
10
输出样例:
1534
时间限制:2000ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int main(){
int n,i;
int s=1; //低n天剩余数
cin>>n;
for(i=n-1;i>=1;i--){
s=(s+1)*2; //前一天等于后一天+1和乘以2
}
cout<<s<<endl;
}
4
提交答案本次得分/总分:20.00/20.00分
43-4搬砖问题(20分)
题目内容:
现有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
C++
#include <iostream>
using namespace std;
int main(){
int n,men,women,children,flag;
cin>>n;
flag=0;
for(men=0;men<=n/4;men++){
for(women=0;women<=n/3;women++){
children=(n-men*4-women*3)*2;
if(children%2==0&&men+women+children==n){
flag=1;
cout<<"men"<<men<<endl;
cout<<"women"<<women<<endl;
cout<<"children"<<children<<endl;
}
}
}
if(!flag)
cout<<"no result!"<<endl;
}
53-5美分找钱(20分)
题目内容:
将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!”(不带引号啊,单词间只有一个空格)
输入样例:
25
输出样例:
13
时间限制:2000ms内存限制:64000kb
C++
#include <iostream>
using namespace std;
int main(){
int n,x,y,z,k,i;
cin>>n;
i=0;
if(n<0||n>99){
cout<<"the money is invalid!"<<endl;
return 0;
}
for(x=0;x<=n/25;x++){
for(y=0;y<=(n-25*x)/10;y++){
for(z=0;z<=(n-25*x-y*10)/5;z++){
k=n-x-y-z;
if(n==x+y+z+k){
i++;
}
}
}
}
cout<<i<<endl;
return 0;
}