第3周编程作业

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;      
	
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值