1. 逻辑运算运用2 if分支与逻辑运算符
题目ID: 8051
Accepted
100分
空间限制: 200ms
空间限制: 32768kB
题目描述
当满足以下两个条件之一时,我们会将数字视为“Good”:
1.数字是5的倍数。
2.数字是3的倍数 且 数小于等于20。
判断给定的数字是否是一个Good数,并输出“YES”或“NO”。
输入格式
一个整数 n.
输出格式
“YES” or “NO”(实际输出没有引号)
样例
Input 1
10
Output 1
YES
Input 2
21
Output 2
NO
样例解释
样本输入 1 对应的是输入整数 n = 10,满足条件1,是5的倍数,因此输出为YES。
样本输入 2 对应的是输入整数 n = 21,不满足条件1和条件2,因此输出为NO。
数据范围
0 <= n <= 100
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
if(n%5==0||(n%3==0&&n<=20))cout<<"YES";
else cout<<"NO";
return 0;
}
2. 很nice 函数和for,类型,取出位数,if
题目ID: 9346
Accepted
100分
空间限制: 200ms
空间限制: 65535kB
题目描述
如果一个质数的各位之和也是一个质数的话,那么这个整数就非常的nice。例如:整数11的各位之和是2,11和2都是质数(非常的nice)。请求出1~n范围内所有的nice整数。
输入格式
输入格式:一个整数n
输出格式
输出格式:范围内所有的nice整数
样例
Input 1
20
Output 1
2 3 5 7 11
样例解释
对每个TestSample的解释(为什么这个input会得到这个output)
数据范围
数据范围:1<=n<=100
#include<iostream>
using namespace std;
bool prime(int n){
if(n==1){return 0;}
for(int i=2;i<n;i++){
if(n%i==0)return 0;
}
return 1;
}
bool nice(int n){
int sum=0;
sum+=n/100%10;
sum+=n/10%10;
sum+=n/1%10;
if(prime(sum)){
return 1;
}
else{
return 0;
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
if(prime(i)&&nice(i)){
cout<<i<<' ';
}
}
return 0;
}
3. 验证码 string应用,转大小写
题目ID: 9680
Accepted
100分
空间限制: 1000ms
空间限制: 65536kB
题目描述
众所周知,验证码是不区分大小写的。即在输入验证码时,若图片给的是P,无论我们的结果是p还是P,都能验证通过。
现在给出两个字符串,问是否能通过验证
输入格式
输入若干组,每组两个字符串,用空格隔开,每个字符串仅由数字或字母组成,长度为4至6个字符。
输出格式
输出若干行,如果一致输出"YES", 否则输出"NO"。
样例
Input 1
aC666 Ac666
aC676 Ac666
Output 1
YES
NO
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1,s2;
while(cin>>s1>>s2){
for(int i=0;i<s1.size();i++){
if(s1[i]>='a'&&s1[i]<='z')s1[i]-=32;
}
for(int i=0;i<s2.size();i++){
if(s2[i]>='a'&&s2[i]<='z')s2[i]-=32;
}
if(s1==s2)cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
4. 最大的结构体 struct应用
题目ID: 7204
Accepted
100分
空间限制: 1000ms
空间限制: 131072kB
题目描述
让你构造一个结构体,包含(int a,int b,int c). 现有 n 个结构体,请输出满足以下条件的结构体的编号:它的 (a,b,c) 都是 n 个结构体中最大的. 如果不存在则输出 -1。
输入格式
第一行一个正整数 n 表示结构体数量. 接下来 n 行每行 3 个数,描述一个结构体
输出格式
一行若干个整数,表示编号或 -1。
样例输入
3
1 1 1
3 2 2
3 3 3
样例输出
3
数据范围
对于 (100%) 的数据,满足 (n <= 100000).
#include<bits/stdc++.h>
using namespace std;
struct u{
int a,b,c;
}p[100000];
int main(){
int n;
cin>>n;
int maxa,maxb,maxc;
for(int i=0;i<n;i++){
cin>>p[i].a>>p[i].b>>p[i].c;
maxa=max(maxa,p[i].a);
maxb=max(maxa,p[i].b);
maxc=max(maxa,p[i].c);
}
for(int i=0;i<n;i++){
if(p[i].a>=maxa&&p[i].b>=maxb&&p[i].c>=maxc){
cout<<i+1;
return 0;
}
}
cout<<-1;
return 0;
}
5. 果园大比拼 struct应用
题目ID: 9165
Accepted
100分
空间限制: 1000ms
空间限制: 262144kB
题目描述
有
𝑛
n 个小朋友去果园郊游,现在他们在玩一个比重量的游戏。他们规定在果园找苹果和西瓜这两种水果,统计出各自摘的苹果和西瓜的总重量,再根据最后的总重量来排名,总重量高的排在前面(如果出现总重量相同就按苹果重的往前排)。现在请你输出排序后的结果。
输入格式
第一行一个整数
𝑛
n,表示去果园郊游的小朋友人数。
接下来
𝑛
n 行,每行两个数,表示苹果和西瓜重量。
输出格式
共
𝑛
n 行,每行两个数,表示排序后的苹果和西瓜成绩。
样例
Input 1
4
2 2
1 4
3 1
2 1
Output 1
1 4
3 1
2 2
2 1
样例解释
数据范围
所有数不超过1000。
#include <bits/stdc++.h>
using namespace std;
struct s
{
int a;
int c;
int b;
bool operator<(const s &W) const
{
//先按a从小到大排
if(a!=W.a)return a > W.a; //如果a相等的话,在按b从小到大
else if(b!=W.b) return c>W.c;
else return b>W.b;
}
} g[10000];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
int f,f2;
cin >>f2>> f;
g[i] = {f2+f,f2,f};
}
sort(g, g + n);
for (int i = 0; i < n; i++)
cout << g[i].c<< " " << g[i].b << endl;
return 0;
}
6. 递归练习2 函数,递归算法
题目ID: 7976
Accepted
100分
空间限制: 200ms
空间限制: 32000kB
题目描述
输入一个 n 。请你按照以下规则输出序列:
设输出这一序列的过程为 F(n)
如果 n 是 1 ,那么输出 1 并返回。
否则,先执行 F([n/2]) ,再输出 n,再执行 F(n-[n/2])
这里中括号的意思是下取整
输入格式
一个正整数 n。
输出格式
一个数列表示答案。
样例
Input 1
10
Output 1
1 2 1 5 1 3 1 2 1 10 1 2 1 5 1 3 1 2 1
样例解释
无
数据范围
1<=n<=100
#include<bits/stdc++.h>
using namespace std;
void f(int n){
if(n==1)cout<<1<<' ';
if(n==1)return ;
else{
f(n/2);
cout<<n<<' ';
f(n-(n/2));
}
}
int main(){
int n;
cin>>n;
f(n);
return 0;
}
无
发布时间:2024年5月27日22:00:12