最近开始了实验室的生活,并且学习了bullet journal。希望接下来的每一天都能完成所有的任务。

1012 数字分类 (20 分)

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:

  • \(A_1\) = 能被 5 整除的数字中所有偶数的和;
  • \(A_2\)​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 \(n_1−n_2+n_3−n_4⋯\);
  • \(A_3\) = 被 5 除后余 2 的数字的个数;
  • \(A_4\) = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;
  • \(A_5\) = 被 5 除后余 4 的数字中最大数字。

输入格式:

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。

输出格式:

对给定的 N 个正整数,按题目要求计算 A1~A5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。

若其中某一类数字不存在,则在相应位置输出 N。

输入样例 1:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

输出样例 1:

30 11 2 9.7 9

输入样例 2:

8 1 2 4 5 6 7 9 16

输出样例 2:

N 11 2 N 9

解题分析及代码:

本题其实比较简单,分情况依次讨论即可。但需要注意的是,在处理\(A_2\)​的时候,不能以\(A_2\)​是否为0作为其是否存在的判断依据,因为交错求和结果\(A_2\)​是可能为0的,所以我采用对其个数是否为0进行判断。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <iomanip>
using namespace std;
int cmp(int a,int b){
return a>b;
}
int main() {
int n=0;
cin >> n;
int a=0;
int a1=0,a2=0,a3=0,a5=0;
int A2[1005]={0};
int n2=0,n4=0;
double a4=0;
for(int i=0;i<n;i++){
cin >> a;
if(a%10==0) a1+=a; //A1
else if(a%5==1) A2[n2++]=a; //A2
else if(a%5==2) a3++;//A3
else if(a%5==3){//A4
n4++;
a4+=a;
}
else if(a%5==4&&a>a5)a5=a;//A5
}
if(n4!=0)a4/=n4;
if(n2!=0){
int b=1;
for(int i=0;i<n2;i++){
A2[i]*=b;
a2+=A2[i];
b*=-1;
}
}
if(a1==0) cout << 'N'; //A1output
else cout << a1 ;
cout <<" "; if(n2==0) cout << 'N';//A2output
else cout << a2 ;
cout <<" "; if(a3==0) cout << 'N';//A3output
else cout << a3 ;
cout <<" "; if(n4==0) cout << 'N';//A4output
else cout <<setiosflags(ios::fixed)<<setprecision(1)<< a4 ;
cout <<" "; if(a5==0) cout << 'N';//A5output
else cout << a5 ;
cout << endl;
return 0;
}

1013 数素数 (20 分)

令 \(P_i\)表示第\(i\)个素数。现任给两个正整数 \(M≤N≤104\),请输出 \(P_M\)到 \(P_N\) 的所有素数。

输入格式:

输入在一行中给出 \(M\) 和\(N\),其间以空格分隔。

输出格式:

输出从\(P_M\)到 \(P_N\) 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。

输入样例:

5 27

输出样例:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

解题分析及代码:

本题其实是对素数判断的另一种运用,会写素数判断,其实问题就迎刃而解啦!

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;
bool IsPrime(int a){
int b=sqrt(a);
if(a==1) return false;
else if (a==2) return true;
else{
for(int i=2;i<=b;i++){
if(a%i==0) return false;
}
return true;
}
}
int main() {
int m,n;
cin >> m >> n;
int n1=0,n2=0;
for(int i=2;n1<n;i++){
if(IsPrime(i)==true){
n1++;
if(n1>=m){
n2++;
cout << i;
if(n2%10==0) cout << endl;
else if(n1!=n) cout <<" ";
}
}
}
return 0;
}

暑假算法练习Day6的更多相关文章

  1. 暑假算法练习Day1

    为了加强个人的算法能力,所以准备每天都做适当的算法练习,并在隔天加以回顾. 依托PTA.Leetcode平台进行训练(暂定每天三题C++,对于Leetcode平台上的练习,由于其解题需以类的形式进行提 ...

  2. 算法学习--Day6

    题目描述 实现一个加法器,使其能够输出a+b的值. 输入描述: 输入包括两个数a和b,其中a和b的位数不超过1000位. 输出描述: 可能有多组测试数据,对于每组数据, 输出a+b的值. 示例1 输入 ...

  3. 暑假算法练习Day5

    咕咕了好几天哈哈哈哈,因为这几天在忙一些其他事(bushi ,好吧其实就是自己太懒啦,从今天开始继续每天的算法练习 1010 一元多项式求导 (25 分) 设计函数求一元多项式的导数.(注:\(x^n ...

  4. 暑假算法练习Day3

    第三天!!!最近要开始归纳总结Python学习啦!! 1006 换个格式输出整数 (15 分) 让我们用字母 B 来表示"百".字母 S 表示"十",用 12. ...

  5. 暑假算法练习Day4

    已经坚持第四天啦,Fighting!!! 1008 数组元素循环右移问题 (20 分) 一个数组\(A\)中存有\(N\)\((>0)\)个整数,在不允许使用另外数组的前提下,将每个整数循环向右 ...

  6. 暑假算法练习Day2

    第二天啦!大家一起冲冲冲!! 1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用 ...

  7. HDU2037 今年暑假不AC 贪心算法

    贪心算法 : 贪心算法就是只考虑眼前最优解而忽略整体的算法, 它所做出的仅是在某种意义上的局部最优解, 然后通过迭代的方法相继求出整体最优解. 但是不是所有问题都可以得到整体最优解, 所以选择贪心策略 ...

  8. 1187: 零起点学算法94——今年暑假不AC(Java)

    1187:零起点学算法94--今年暑假不AC Time Limit: 1 Sec Memory Limit: 32 MB 64bit IO Format: %lld Description " ...

  9. Day6 反射、模块、正则表达式和算法

    递归完成阶乘 def func(num): if num == 1: return 1 return num * func(num - 1) x = func(7) print(x) 反射 commo ...

随机推荐

  1. P6624-[省选联考2020A卷]作业题【矩阵树定理,欧拉反演】

    正题 题目链接:https://www.luogu.com.cn/problem/P6624 题目大意 \(n\)个点的一张图,每条边有权值,一棵生成树的权值是所有边权和乘上边权的\(gcd\),即 ...

  2. Keras函数——keras.callbacks.ModelCheckpoint()及模型的训练

    keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_ ...

  3. cybersploit

    靶机准备 将ova文件导入虚拟机中,设置网络模式为NAT 从靶机描述得知包含3个flag kali扫描其ip netdiscover -r 192.168.164.0/24 渗透测试 namp扫描端口 ...

  4. T-SQL——关于SQL打开Excel文件

    目录 0. 背景说明 1. 安装Access Database Engine 1. SQL脚本 3. .net项目中通过Micsoft.ACE.oledb读取Excel文件 志铭-2021年10月1日 ...

  5. 【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)

    Azure Automation :The Azure Automation service provides a highly reliable and scalable workflow exec ...

  6. FTP和TFTP

    文件传输协议 FTP概述: 文件传输协议FTP(File Transfer Protocol)[RFC 959]是互联网上使用最广泛的文件传输协议, FTP提供交互式的访问,允许用户知指明文件类型与格 ...

  7. Ubuntu解决安装没有候选

    Ubuntu解决安装没有候选 很多初次上手的小白们最头疼的可能就是一下这种问题了 这是我也载过很多次的坑,原因是软件安装源的问题,需要去软件安装设置里更改合适的源 结局方案如下:(具体操作) 有个So ...

  8. Java字符串的初始化与比较

    Java字符串的初始化与比较 简单的总结:直接赋值而不是使用new关键字给字符串初始化,在编译时就将String对象放进字符串常量池中:使用new关键字初始化字符串时,是在堆栈区存放变量名和内容:字符 ...

  9. C#开发BIMFACE系列40 服务端API之模型集成

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 随着建筑信息化模型技术的发展,越来越多的人选择在云端浏览建筑模型.现阶段的云端模型浏览大多是基于文件级别,一次只可以浏览一 ...

  10. 洛谷3973 TJOI2015线性代数(最小割+思维)

    感觉要做出来这个题,需要一定的线代芝士 首先,我们来观察这个柿子. 我们将\(B\)的权值看作是收益的话,\(C\)的权值就是花费. 根据矩阵乘法的原理,只有当\(a[i]和a[j]\)都为\(1\) ...