语法小白看过来!!

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值