周测题

电影票

题目描述
已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少?
输入
一个整数x(大于等于1小于等于1000000)
输出
一个整数
样例输入 Copy
8
样例输出 Copy
80
来源/分类
解题思路:输入的数字乘以10即可

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<n*10;
return 0;
}

2的数字
题目描述
萌萌才2岁,观看NBA时,对队员身上的号码感兴趣,可她只认识数字’2’,如果号码中有数字’2’,萌萌就会兴奋的大叫。现在,萌萌看到电视画面上有5个队员的号码,请问哪些号码会让萌萌大叫?
输入
第一行5个正整数(大于1小于20)
输出
一行,包含’2’的整数
样例输入 Copy
1 19 2 18 12
样例输出 Copy
2 12

解题思路:因为输入的数字小于20,所以只需要判断个位数就行了。

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
for(int i=0;i<5;i++)
{
cin>>n;
if(n%10==2) cout<<n<<" ";
}
return 0;
}

国王与麦子
题目描述
传说古代印度有个喜欢下棋的国王叫舍罕,而宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩得爱不释手,决定奖赏宰相。达依尔说:陛下,我别无他求,请你在这张棋盘的第一个格子里赏我一粒麦子;在第2个格子里赏我2粒麦子;在第3个格子里赏我4粒麦子;在第4个格子里赏我8粒麦子…….依次类推。
你能帮助国王算算第n个格子的麦子数量吗?
输入
从键盘上输入正整数n
输出
在屏幕输出第n个格子的麦子数量
样例输入 Copy
5
样例输出 Copy
16
来源/分类
解题思路:得到麦子的数量分别为1 2 4 8 16…,这正好是前面一个数字乘2.

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

铺地砖
题目描述
小明家是一个长为a,宽为b,的长方形房屋,现在小明要用边长为c的正方形地砖把房屋铺满,现在小明想知道当地砖边长为多少时,可以在不切割地砖的情况下,用最少数量的地砖把房屋铺满。
输入
房屋的长和宽a,b。(a,b大于1小于1000000000的整数)
输出
最少数量能铺满房屋的正方形边长c
样例输入 Copy
8 4
样例输出 Copy
4
解题思路:求房屋长和宽的最大公因数就可以了。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
int c=1;
while(c!=0)
{
c=a%b;
a=b;
b=c;
}
cout<<a;
return 0;
}

分解质因子
题目描述
任意一个正整数都能分解成若干个质数相乘的形式。输入一个正整数n(n大于等于2小于等于100000),把它分解成质因子相乘的形式,如果为质数则输出该数本身。如36=2233;19=19。
输入
99
输出
99=3
3*11

解题思路:根据质数的概念可知,一个正整数不是质数便是非质数:如果是质数,则分解出来即为它本身;如果是非质数,则肯定可以分解为若干比它小的质数相乘的形式,即非质数是由比它小的质数相乘得到的。

#include<bits/stdc++.h>
using namespace std;
int n,js,t=2;
int main()
{
	cin>>n;
	while(n!=1)
	  {
	  	while(n%t==0)
	  	  {
	  	  	js++;
	  	  	if(js==1) cout<<n<<"="<<t;
	  	  	   else
	  	  	cout<<"*"<<t;
	  	  	n/=t;
			}
		t++;
	  }
	  return 0;
}

饮水机

题目描述
为了倡导低碳生活,市文明办计划举办马拉松比赛,为了确保安全,沿途设置了一些观察点。每个观察点派一个观察员驻守。由于天气炎热,需要在沿途安装一些饮水机,使得观察员可以去取水喝。由于观察员每移动一个单位的路,需要耗费一个单位的体力。而每个观察员的体力有限,只能在他体力能支持的范围去取水喝,要不他就会渴死或累死。
聪明的小明也参加了这次比赛的筹备工作。他的任务是设计一个理想的安装饮水机方案,使得安装的饮水机最少,但又保证所有观察员都能取到水喝。
输入
输入数据有若干行:第一行,仅一个整数,表示有N(大于0小于1000)个观察点;
接下来有N行,每行两个整数S(大于0小于等于100000)和W(大于0小于50000),其中S表示某个观察点到起点的路程,W表示该观察点中驻点观察员的体力。
输出
输出最少要安装几台饮水机。
样例输入 Copy
4
6 3
12 2
1 5
14 5
样例输出 Copy
2
提示
他可以将饮水机安装在距离起点为6和12的位置上,这样所有的观察员都能喝到水。方案有多种,只需输出最少需要几台饮水机即可。

在这里插入图片描述
参考程序
#include<bits/stdc++.h>
using namespace std;
struct len{
int x1;
int x2;
};
len a[1008];
int b[1000000],ans;
bool cmd(len c,len d)
{
return c.x2<d.x2;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i].x1;
cin>>a[i].x2;
a[i].x2=a[i].x1+a[i].x2;
}
sort(a,a+n,cmd);
for(int i=0;i<n;i++)
{
bool t=0;
for(int j=a[i].x1;j<=a[i].x2;j++)
if(b[j]) {
t=1;
break;
}
if(t==0) {
b[a[i].x2]=1;
ans++;
}
}
cout<<ans;
return 0;
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值