基础编程练习(五)
7-41 三天打鱼两天晒网 (15point(s))
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入格式:
输入在一行中给出一个不超过1000的正整数N。
输出格式:
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
#include
#include
#include
using namespace std;
int main()
{int n;cin>>n;if(n % 5 - 3 > 0 || n % 5 == 0){cout<<"Drying in day "<<n;}else{cout<<"Fishing in day "<<n;}
}
7-42 韩信点兵 (10point(s))
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
输入格式:
本题无输入
输出格式:
输出韩信至少拥有的士兵人数。
#include
#include
#include using namespace std;int main()
{cout<<2111; //这里我是手算的,这里请自行参考中国剩余定理
}
7-43 一帮一 (15point(s))
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。
输入格式:
输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。
输出格式:
每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int main()
{int n;cin>>n;vector<int> num;vector<string> w_name;vector<string> m_name;vector<string> name;for(int i = 0; i < n; i ++){string str;int a;cin>>a>>str;name.push_back(str);num.push_back(a);if(a == 0){w_name.push_back(str); }else{m_name.push_back(str);}}for(int i = 0; i < n / 2; i ++){cout<<name[i]<<" ";if(num[i] == 0){cout<<m_name[m_name.size() - 1]<<endl;m_name.pop_back();}else{cout<<w_name[w_name.size() - 1]<<endl;w_name.pop_back();}} }
7-44 猴子吃桃问题 (15point(s))
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?
输入格式: 输出格式: 7-45 数字加密 (15point(s)) 输入格式: 输出格式: 7-46 人民币兑换 (15point(s)) 输入格式: 输出格式: 注意:如果全部方案不到n种,就顺序输出全部可能的方案。 7-47 简化的插入排序 (15point(s)) 输入格式: 输出格式: 7-48 藏头诗 (15point(s)) 输入格式: 输出格式: 7-49 复数四则运算 (15point(s)) 输入格式: 输出格式: 7-50 整数的分类处理 (20point(s)) A1 = 能被 3 整除的最大整数 输出格式:
输入在一行中给出正整数N(1
在一行中输出第一天共摘了多少个桃子。#include
输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。
输入在一行中给出一个四位的整数x,即要求被加密的数。
在一行中按照格式“The encrypted number is V”输出加密后得到的新数V。#include
1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。请编写程序给出各种兑换方案。
输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照5分硬币从少到多排列的。
显示前n种方案中5分、2分、1分硬币各多少枚。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。#include
本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。
在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。#include
本题要求编写一个解密藏头诗的程序。
输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。
取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。#include
本题要求编写程序,计算2个复数的和、差、积、商。
输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。
分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。#include
给定 N 个正整数,要求你从中得到下列三种计算结果:
A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。#include
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
