贵州大学oj平台24级24-12-7第2次上机小测

题目:质因子求和函数

题目描述

输入一个大于1的正整数n,输出n的所有质因子的和。

对于给定的正整数n来说,质因子(或质因数)是指能整除n的质数,如果n自身也是质数的话,它自己也是自己的质因子。

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。注意,1既不是质数也不是合数。

程序的开始部分已经写好如下:

#include <stdio.h>

程序的最后是main函数,main函数已经写好如下:

int main(){
    int n,sum;
    scanf("%d",&n);
    sum = sumOfPrimeFactor(n);  /*调用函数*/
    printf("%d",sum);
    return 0;
}

在main函数中会调用一个名为sumOfPrimeFactor的函数,该函数会计算n的所有质因子的和并返回结果。

请补充提交你认为需要的程序剩余部分,OJ系统会将上述已有的代码和你提交的代码合并成一个程序再进行编译,因此请不要重复提交上述已有的代码。

输入描述

输入一个大于1的正整数n,OJ测试数据保证n是大于1的正整数,你不需要对此进行检测。

输出描述

输出n的所有质因子之和

样例输入

10

样例输出 

7

题解 

方法一:
#include<math.h>int sumOfPrimeFactor(int n){int sum=0,flag;for(int i=2;i<=n;i++){flag=1;                          //每次循环结束重置flagfor(int j=2;j<=sqrt(i);j++){if(i%j==0){flag=0;break;}}if(flag){                        //若i不为质数,则不执行if语句if(n%i==0){sum+=i;n/=i;}}}if(sum==0) sum++;                    //若sum为0,即n为质数return sum;
}
 方法二:
#include<math.h>int jugdePrime(int n){if(n<2){return 0;}for(int i=2;i<=sqrt(n);i++){if(n%i==0){return 0;}}return 1;
}int sumOfPrimeFactor(int n){int sum=0;for(int i=2;i<=n;i++){if(n%i==0&&jugdePrime(i)){    //调用函数判断i是否为质数(若n%i==0为假,则不会调用jugdePrime函数)sum+=i;}}return sum;
}

后者的时间复杂度要小于前者 


题目:单词个数统计函数1

题目描述

输入一行英文字符串,由若干单词组成,单词间仅由空格分隔。统计并输出该行字符串中的单词数量。

程序的开始部分已经写好如下:

#include <stdio.h>

#include <string.h>

程序的最后是main函数,main函数已经写好如下:

int main(){
    char s[100];
    gets(s);
    int count = getWordNumber(s);  /*调用函数*/
    printf("%d",count);
    return 0;
}

在main函数中会调用一个名为getWordNumber的函数,该函数会统计字符串中单词的数量并返回结果。

请补充提交你认为需要的程序剩余部分,OJ系统会将上述已有的代码和你提交的代码合并成一个程序再进行编译,因此请不要重复提交上述已有的代码。

输入描述

输入一行英文字符串,由若干单词组成。OJ测试数据保证数组空间足够大,且单词之间仅由空格分隔。

但是在第一个单词前面可能有若干空格,最后一个单词后面也可能有若干空格,两个单词之间的分隔可能不止一个空格。

输出描述

输出字符串中的单词个数。

样例输入

  Hello Guizhou  University

样例输出 

3

题解 

#include<ctype.h>int getWordNumber(char s[]){int len=strlen(s);int count=0,flag=0;for(int i=0;i<len;i++){if(isalpha(s[i])){flag=1;            //若s[i]为字母,记录}else{if(flag){          //若flag为0,即前面没有未记录的单词flag=0;count++;}}}if(flag){                  //判断最后一个单词是否被记录count++;}return count;
}


题目:比赛得分计算函数

题目描述

现在要举行某项比赛,共有n个裁判给选手打分。选手的得分计算规则是从n个裁判的打分中去掉一个最高分和一个最低分,
计算剩下裁判分数的平均分。例如有7个裁判打分,去掉一个最高分和一个最低分后,计算剩余5个裁判的平均分即可。
如果最高分或最低分不只一个,去掉一个就可以了。

本题要求输入裁判人数及所有裁判的分数,输出选手的得分。

程序的开始部分已经写好如下:

#include <stdio.h>

程序的最后是main函数,main函数已经写好如下:

int main(){
    int n,i;
    double avg;
    scanf("%d",&n);
    double score[n];
    for(i=0;i<n;i++)
        scanf("%lf",&score[i]);
    /*调用函数,计算选手得分*/
    calculateScore(n,score,&avg);
    printf("%.2f",avg);
    return 0;
}

在main函数中会调用一个名为calculateScore的函数,该函数会按上述规则计算选手的比赛得分。

请补充提交你认为需要的程序剩余部分,OJ系统会将上述已有的代码和你提交的代码合并成一个程序再进行编译,因此请不要重复提交上述已有的代码。

输入描述

先输入一个正整数n,代表有n个裁判打分(OJ测试数据保证n是正整数,不用进行检测)
再输入n个double型数据,代表n个裁判给出的分数(OJ测数数据保证这n个double数据都是正数,且在0.0~10.0范围内)

输出描述

输出选手的得分,小数点后保留两位。

样例输入

7
7.0 7.5 7.5 7.0 8.0 8.5 8.0

样例输出 

7.60

题解 

void calculateScore(int n,double score[],double* avg){int max=0,min=0;*avg=0;for(int i=0;i<n;i++){if(score[max]<score[i]) max=i;        //记录最大值if(score[min]>score[i]) min=i;        //记录最小值*avg+=score[i];}*avg=(*avg-score[min]-score[max])/(n-2);  //去除最大值和最小值并求平均值
}

 题目:质数个数函数

题目描述

输入一个大于1的正整数n,输出2~n之间的质数个数。

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。注意,1既不是质数也不是合数。

程序的开始部分已经写好如下:

#include <stdio.h>

程序的最后是main函数,main函数已经写好如下:

int main(){
    int n,num;
    scanf("%d",&n);
    num = numOfPrime(n);  /*调用函数*/
    printf("%d",num);
    return 0;
}

在main函数中会调用一个名为numOfPrime的函数,该函数会统计2~n之间的质数个数并返回结果。

请补充提交你认为需要的程序剩余部分,OJ系统会将上述已有的代码和你提交的代码合并成一个程序再进行编译,因此请不要重复提交上述已有的代码。

输入描述

输入一个大于1的正整数n,OJ测试数据保证n是大于1的正整数,你不需要对此进行检测。

输出描述

输出2~n之间的质数个数

样例输入

10

样例输出 

4

题解 

#include<math.h>int numOfPrime(int n){int num=0,flag;for(int i=2;i<=n;i++){flag=1;                        //每次循环需重置flagfor(int j=2;j<=sqrt(i);j++){if(i%j==0){flag=0;break;}}if(flag){num++;}}return num;
}

题目:单词个数统计函数2

题目描述

输入一行英文字符串,由若干单词组成,单词间仅由空格分隔。统计并输出该行字符串中的大写英文字母开头的单词数量。

程序的开始部分已经写好如下:

#include <stdio.h>

#include <string.h>

程序的最后是main函数,main函数已经写好如下:

int main(){
    char s[100];
    gets(s);
    int count = getWordNumber(s);  /*调用函数*/
    printf("%d",count);
    return 0;
}

在main函数中会调用一个名为getWordNumber的函数,该函数会统计字符串中大写英文字母开头的单词数量并返回结果。

请补充提交你认为需要的程序剩余部分,OJ系统会将上述已有的代码和你提交的代码合并成一个程序再进行编译,因此请不要重复提交上述已有的代码。

输入描述

输入一行英文字符串,由若干单词组成。OJ测试数据保证数组空间足够大,且单词之间仅由空格分隔。

但是在第一个单词前面可能有若干空格,最后一个单词后面也可能有若干空格,两个单词之间的分隔可能不止一个空格。

输出描述

输出字符串中的大写英文字母开头的单词个数。

样例输入

  I love Guizhou We all  Love guizhou University

样例输出 

5

题解 

#include<ctype.h>int getWordNumber(char s[]){int len=strlen(s);int count=0;for(int i=0;i<len;i++){if(isupper(s[i])) count++;    //判断s[i]是否为大写字母}return count;
}

 以上解法有投机取巧的成分。

按题目的逻辑,还应判断该大写字母是否为单词首字母,以往的题目中有相关思路,在此不过多赘述。


题目:元素个数统计函数

题目描述

输入若干整数存储在数组中,统计数组中大于所有元素平均值的元素个数并输出结果。注意,元素的平均值计算使用double型数据。

程序的开始部分已经写好如下:

#include <stdio.h>

程序的最后是main函数,main函数已经写好如下:

int main(){
    int n,i;
    int num;
    scanf("%d",&n);
    int score[n];
    for(i=0;i<n;i++)
        scanf("%d",&score[i]);
    /*调用函数,统计元素个数*/
    countNum(n,score,&num);
    printf("%d",num);
    return 0;
}

在main函数中会调用一个名为countNum的函数,该函数会统计数组中大于所有元素平均值的元素个数。

请补充提交你认为需要的程序剩余部分,OJ系统会将上述已有的代码和你提交的代码合并成一个程序再进行编译,因此请不要重复提交上述已有的代码。

输入描述

先输入一个正整数n,代表数组长度(OJ测试数据保证n是正整数,不用进行检测)
再输入n个整型数据,代表n个数组元素

输出描述

输出数组中大于平均值的元素个数。(注意元素的平均值计算使用double型数据)

样例输入

10
1 2 3 4 5 6 7 8 9 10

样例输出 

5

题解 

void countNum(int n,int score[],int* num){*num=0;double arg=0;for(int i=0;i<n;i++){arg+=score[i];}arg/=n*1.0;for(int i=0;i<n;i++){if(score[i]>arg) (*num)++;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wireshark数据抓包分析之传输层协议(TCP协议)

根据实验环境&#xff0c;本实验的步骤如下&#xff1a; 1.在测试环境使用发包工具和Wireshark抓取TCP三次握手和四次断开的数据包。 2.详细分析TCP协议的三次握手以及四次断开。 任务描述&#xff1a;安装发包工具&#xff0c;并配置TCP客户端&#xff0c;服务端&#xff0…

【目标检测】【反无人机目标检测】使用SEB-YOLOv8s实时检测未经授权的无人机

Real-Time Detection of Unauthorized Unmanned Aerial Vehicles Using SEB-YOLOv8s 使用SEB-YOLOv8s实时检测未经授权的无人机 论文链接 0.论文摘要 摘要&#xff1a;针对无人机的实时检测&#xff0c;复杂背景下无人机小目标容易漏检、难以检测的问题。为了在降低内存和计算…

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源&#xff08;如日志文件、消息队列、网络数据、文件系统、数据库等&#xff09;收集数据&#xff0c;并将…

Unity 设计模式-观察者模式(Observer Pattern)详解

观察者模式 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了对象之间的一对多依赖关系。当一个对象的状态发生变化时&#xff0c;它的所有依赖者&#xff08;观察者&#xff09;都会收到通知并自动更新。这种模式用于事件处理系…

论文:IoU Loss for 2D/3D Object Detection

摘要&#xff1a;在2D/3D目标检测任务中&#xff0c;IoU (Intersection-over- Union)作为一种评价指标&#xff0c;被广泛用于评价不同探测器在测试阶段的性能。然而&#xff0c;在训练阶段&#xff0c;通常采用常见的距离损失(如L1或L2)作为损失函数&#xff0c;以最小化预测值…

vue.js学习(day 20)

综合案例&#xff1a;购物车 数据渲染 构建cart购物车模块 准备后端接口服务环境 请求数据存入vuex cart.js // 新建购物车模块 import axios from axios export default {namespaced: true,state () {return {// 购物车数据 [{},{}]list: []}},mutations: {updateList (…

RAG系统分类、评估方法与未来方向

分享一篇RAG综述&#xff1a;Retrieval-Augmented Generation for Large Language Models: A Survey&#xff0c;主要想了解一下RAG的评估方法&#xff0c;分享给大家。 文章目录 一、RAG分类二、评估方法三、未来方向 一、RAG分类 RAG分类&#xff1a;Navie RAG、Advanced RA…

Ant Design Vue v4版本如何解决1px没有被postcss-px2rem转成rem的问题

背景说明 如果你的 Ant Design Vue 项目有要做适配的需求&#xff0c;那首先要选择一种适配方案。笔者选择的是用 postcss-px2rem 进行适配。笔者在配置了 postcss-px2rem的相关配置后&#xff0c;发现 postcss-px2rem 没有对 Ant Design Vue 进行适配。在网上看了一些文章之后…

美国大选后,用HMM模型做特斯拉股价波动解析

作者&#xff1a;老余捞鱼 原创不易&#xff0c;转载请标明出处及原作者。 写在前面的话&#xff1a;本文主要探讨如何利用高斯隐马尔可夫模型&#xff08;HMM&#xff09;预测股票价格&#xff0c;我们将分步进行说明&#xff1a;包括数据准备、特征选择、训练 HMM 模型、最后…

解决Conda虚拟环境中pip下载包总是到base环境的问题

conda本地创建的虚拟环境使用pip安装一些包总是安装到base环境中&#xff0c;导致无法正确进行环境隔离&#xff0c;下面是一些解决办法 方法一、使用python -m pip安装 1.1、验证虚拟环境的pip版本是哪个版本&#xff0c;如下所示&#xff0c;本人的demo虚拟环境直接使用pip…

VSCode(四)CMake调试

1. 工具准备 1.1 C环境插件 1.2 CMake插件 2. Cmake工程 2.1 创建项目文件夹 ex:CMAKE_TEST 2.2 创建CMake工程 &#xff08;shift ctl P), 选择"CMAKE: Quick Start": 2.3 填写project name: (ex: test_cmake) 2.4 选择”Executable“ 项目文件内会自动…

qt-everywher交叉编译e-src-5.15.2

简化配置的方式&#xff1a; 你完全可以通过直接配置 安装目录、编译链 和 目标架构 来完成交叉编译&#xff0c;而不需要修改 mkspecs 配置。以下是如何通过简化配置来进行交叉编译 Qt 的步骤。 准备交叉编译工具链 首先&#xff0c;确保你已经安装了交叉编译工具链&#xff…

kafka-clients之ConsumerConfig

Kafka ConsumerConfig 中的配置项用于定义消费者的行为&#xff0c;如消费方式、偏移管理、组协调等。以下是ConsumerConfig中的关键配置项及其详细说明&#xff1a; 1. bootstrap.servers 类型&#xff1a;List<String>说明&#xff1a;Kafka集群的地址列表&#xff0…

EasyExcel导出列表

通过easyexcel导出列表数据 根据列表内容自适应宽高。 文件名冲突&#xff0c;修改文件名递增设置。 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version&…

ubuntu下的chattts 学习4:Advanced Usage

源码 import ChatTTS import torch import torchaudiochat ChatTTS.Chat() chat.load(compileFalse) # Set to True for better performance ################################### # Sample a speaker from Gaussian.rand_spk chat.sample_random_speaker() print(rand_spk)…

从 HTML 到 CSS:开启网页样式之旅(七)—— CSS浮动

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;七&#xff09;—— CSS浮动 前言一、浮动的简介1.没有浮动的代码和效果2.加入浮动的代码和效果 二、元素浮动后的特点1. 脱离文档流2.宽高特性&#xff1a;3.共用一行&#xff1a;4.margin 特性&#xff1a;5.区别于行…

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 一、效果展示 **博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a;我的百宝工具箱 二、示例代码 1.1、在自己的小程序中创建组件 1.2、组件…

通过 FRP 实现 P2P 通信:控制端与被控制端配置指南

本文介绍了如何通过 FRP 实现 P2P 通信。FRP&#xff08;Fast Reverse Proxy&#xff09;是一款高效的内网穿透工具&#xff0c;能够帮助用户突破 NAT 和防火墙的限制&#xff0c;将内网服务暴露到公网。通过 P2P 通信方式&#xff0c;FRP 提供了更加高效、低延迟的网络传输方式…

MySQL Explain 指南

MySQL Explain 指南 idselect_typetablepartitionstypepossible_keyskeykeylenrefrowsfilteredExtra 使用 explain 执行 DML 语句时&#xff0c;数据不会发生变化。explain 的结果可能包含多行数据&#xff0c;每行对应一个表。若涉及 union 操作&#xff0c;MySQL 会创建临时表…

如何给 JavaScript 函数添加参数校验?

在 JavaScript 中&#xff0c;对函数参数进行校验是确保代码健壮性和防止错误的重要手段。参数校验不仅能提高代码的可读性&#xff0c;还能帮助捕获潜在的错误。下面&#xff0c;我们将结合实际项目代码示例&#xff0c;讲解如何给 JavaScript 函数添加参数校验。 常见的参数…