pta模拟赛(7-21 求A除以B的商与余数、7-22 一元多项式求导、7-23 一元多项式的乘法与加法运算、7-24 多项式A除以B、7-25 人以群分)

7-21 求A除以B的商与余数

计算A/B的商和余数,其中被除数A是不超过1000位的非负整数,除数B是一个不超过229的任意非负整数。要求你输出商Q和余数R。

输入格式:

输入在一行中依次给出 A 和 B,中间以空格分隔。

输出格式:

在一行中依次输出 Q 和 R,中间以空格分隔。

输入样例:

1234567891234567893 23

输出样例:

53676864836285560 13
#include <stdio.h>
#include <string.h>
// 定义一个函数,用于计算A除以B的商和余数
void division(char A[], int B) 
{int len = strlen(A); // 获取被除数A的长度int Q[1001], R = 0; // 定义存放商和余数的数组Q和Rfor (int i = 0; i < len; i++) {R = R * 10 + (A[i] - '0'); // 计算当前余数RQ[i] = R / B; // 计算当前商QR = R % B; // 更新余数R}int i = 0;while (Q[i] == 0 && i < len - 1) { // 找到第一个非零的商i++;}for (; i < len; i++) {printf("%d", Q[i]); // 输出商}printf(" %d\n", R); // 输出余数
}
int main() 
{char A[1001];int B;scanf("%s %d", A, &B); // 输入被除数A和除数Bdivision(A, B); // 调用division函数计算商和余数并输出return 0;
}

7-22 一元多项式求导

设计函数求一元多项式的导数。

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0
#include <stdio.h>
int main() 
{int x,y;int ret=0;while(scanf("%d %d",&x,&y)!=EOF) {if(y==0&&ret==0)printf("0 0");if(y==0)break;if(ret)printf(" ");ret++;printf("%d %d",x*y,y-1);}return 0;
}

 

7-23 一元多项式的乘法与加法运算

设计函数分别求两个一元多项式的乘积与和。

输入格式:

输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0

输入样例:

4 3 4 -5 2  6 1  -2 0
3 5 20  -7 4  3 1

输出样例:

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
#include<stdio.h>
void print(long result[]); // 打印结果函数
struct Num
{int n1,n2; // 系数,指数
}a[10010];     // 储存第一行的数据,第二行的数据读入时可以直接开始运算,不需要再存int main()
{long result1[10001]={0},result2[10001]={0}; // 1.储存相乘 2.储存相加 ; 指数为数组下标int len1,len2,num1,num2;//  第一行数据读入scanf("%d",&len1);for(int z=0;z<len1;z++) {scanf("%d %d",&a[z].n1,&a[z].n2);result2[a[z].n2+2000] = a[z].n1;            // 相加运算,全部加2000是因为考虑了负数的情况}//  第二行数据读入scanf("%d",&len2);while (len2--){scanf("%d %d",&num1,&num2);result2[num2+2000] += num1;                 // 相加运算for(int z=0;z<len1;z++) result1[num2+a[z].n2+2000] += num1*a[z].n1;     // 相乘运算}//  答案输出print(result1);print(result2);return 0;
}
void print(long result[])
{int flag = 0;   // 判断是否有输出for(int z=4001;z>=0;z--) {if(result[z]!=0){if(flag>0) putchar(' ');printf("%d %d",result[z],z-2000);flag = 1;}}if(flag==0) printf("0 0");putchar('\n');
}

 

7-24 多项式A除以B

这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。

输入格式:

输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:

N e[1] c[1] ... e[N] c[N]

其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。

输出格式:

分两行先后输出商和余,输出格式与输入格式相同,输出的系数保留小数点后1位。同行数字间以1个空格分隔,行首尾不得有多余空格。注意:零多项式是一个特殊多项式,对应输出为0 0 0.0。但非零多项式不能输出零系数(包括舍入后为0.0)的项。在样例中,余多项式其实有常数项-1/27,但因其舍入后为0.0,故不输出。

输入样例:

4 4 1 2 -3 1 -1 0 -1
3 2 3 1 -2 0 1

输出样例:

3 2 0.3 1 0.2 0 -1.0
1 1 -3.1
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
#include <cmath>
using namespace std;
struct poly{int e;double c;
}p[10000],ans[10000];//p记录除数多项式,ans记录商或余数int main(){int n,m,ant = 0,e;//m记录被除数多项式指数的最高次double c;map<int,double>q;cin >> n;for(int i = 0; i < n; i++){cin >> e >> c;q[e] = c;if(i == 0) m = e;}cin >> n;for(int i = 0; i < n; i++){cin >> p[i].e >> p[i].c;}while(m >= p[0].e){double change = q[m] / p[0].c;//系数biint diff = m - p[0].e;//指数比if(fabs(change) >= 0.05){ans[ant].e = diff;ans[ant++].c = change;for(int i = 0; i < n; i++){//更新a多项式q[p[i].e + diff] -= change * p[i].c;//通过b多项式加上指数比去找a多项式的项进行减法}}else m--;while(m >= p[0].e && fabs(q[m]) < 0.05){//这一步的作用是防止上一步m--后的项虽然次数减少了,可能系数小于0.05m--;}}cout << ant;if(!ant) cout << " 0 0.0";for(int i = 0; i < ant; i++){printf(" %d %.1f",ans[i].e,ans[i].c);}cout << endl;ant = 0;while(m >= 0){if(fabs(q[m]) >= 0.05){ans[ant].e = m;ans[ant++].c = q[m];}m--;}cout << ant;if(!ant) cout << " 0 0.0";for(int i = 0; i < ant; i++){printf(" %d %.1f",ans[i].e,ans[i].c);}return 0;
}

 

7-25 人以群分

社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。

输入格式:

输入第一行给出一个正整数N(2≤N≤105)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。题目保证这些数字以及它们的和都不会超过231。

输出格式:

按下列格式输出:

Outgoing #: N1
Introverted #: N2
Diff = N3

其中N1是外向型人的个数;N2是内向型人的个数;N3是两群人总活跃度之差的绝对值。

输入样例1:

10
23 8 10 99 46 2333 46 1 666 555

输出样例1:

Outgoing #: 5
Introverted #: 5
Diff = 3611

输入样例2:

13
110 79 218 69 3721 100 29 135 2 6 13 5188 85

输出样例2:

Outgoing #: 7
Introverted #: 6
Diff = 9359
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int cmp(const void*a,const void *b)
{return *(int *)a - *(int *)b;
}
int main()
{int N = 0;int arr[100001];scanf("%d",&N);int sum1 = 0 , sum2 = 0 , ret1 = 0 , ret2 = 0;for(int i =0 ; i<N ; ++i){scanf("%d",&arr[i]);}qsort(arr,N,sizeof(arr[0]),cmp);for(int i =0 ; i < N/2 ; ++i){sum1 += arr[i];ret1++;}for(int i = N/2 ; i < N ; ++i){sum2 += arr[i];ret2++;}printf("Outgoing #: %d\n",ret2);printf("Introverted #: %d\n",ret1);printf("Diff = %d\n",abs(sum1-sum2));return 0;
}

 

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

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

相关文章

minio服务端搭建使用

一.minio文件服务搭建 非docker环境部署(Linux部署) 1.官网下载安装包&#xff1a;MinIO | Code and downloads to create high performance object storage 2、上传安装包文件到目录(这个可以自由选择) /home/minio/ 3、为minio添加权限 sudo chmod x minio 4、 创建mini…

开关柜无线测温系统

开关柜无线测温系统是一种基于无源无线通信技术的开关柜温度监测系统&#xff0c;依托电易云-智慧电力物联网实现高压开关柜接头温度的在线监测和报警。该系统通过在开关柜内部安装无线温度探测器&#xff0c;实时监测开关柜内部的接头、电缆接头、母排等的温度监控&#xff0c…

深入理解 Go 语言中的接口(interface)

一、GoLang 接口的定义 1、GoLang 中的接口 在 Go 语言中接口&#xff08;interface&#xff09;是一种类型&#xff0c;一种抽象的类型接口&#xff08;interface&#xff09;定义了一个对象的行为规范&#xff0c;只定义规范不实现&#xff0c;由具体的对象来实现规范的细节…

0年费、0月费、免kyc,支持ChatGPTPlus充值虚拟卡

虚拟卡通常是指银行卡的虚拟卡&#xff0c;是在银行卡的基础上的银联、VISA、万事达卡BIN码衍生出的一种虚拟账户。虚拟卡一般都是用于网络上无卡支付&#xff0c;因此虚拟卡都不会配备相应的实体卡片。银行卡的虚拟卡&#xff0c;在分类上与实体卡并无什么区别&#xff0c;也分…

JAVA 可执行文件格式

JAVA 可执行文件格式 springboot 程序使用 Maven PLugin插件编译时&#xff0c;可以生成可执行的 jar 和 war 程序。其核心原理是 spring-boot-loader 模块&#xff0c;详细原理如下 1 嵌套 JARS java 本身不支持任何标准的加载嵌套 jar 的方式&#xff0c;要解决该问题&…

探秘高级代理技术:SK5代理在网络安全中的应用

在当今数字化时代&#xff0c;网络安全和隐私保护日益受到重视。作为网络工程师和网络文章主编&#xff0c;我将为您介绍一种强大而高级的代理技术——SK5代理&#xff0c;并探讨其在网络安全、爬虫以及HTTP通信中的重要应用。 1. SK5代理简介 SK5代理是一种基于SOCKS5协议的…

学SQL JOINS看这一篇文章就够了

目录 下面以实例进行分析 内连接 inner join 或者join&#xff08;等同于inner join&#xff09; 外连接 left join 或者left outer join(等同于left join) [ left join 或者left outer join(等同于left join) ] [ where B.column is null ] right join 或者right outer…

Docker Registry本地镜像仓库部署并实现远程连接拉取镜像

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…

Centos系列:shell编程综合练习(个人学习记录)

shell编程综合练习&#xff08;个人学习记录&#xff09; shell编程until 循环跳出循环1. break命令2. continue 命令 Shell函数特殊变量输入输出重定向输出重定向输入重定向重定向 Shell实战监控centos7运行状态/proc/stat文件编写脚本free命令监控系统内存 shell编程 until …

ubuntu几个版本开启或关闭图形界面小结

在下面几个系统做过验证&#xff1a; ubuntu-16.04.7-desktop-amd64&#xff08;内核版本&#xff1a;Linux 4.15.0-112&#xff09; ubuntu-18.04.6-desktop-amd64&#xff08;内核版本&#xff1a;Linux 5.4.0-150&#xff09; ubuntu-20.04.6-desktop-amd64&#xff08;内…

h5网站开发-微信浏览器无法自动播放视频的解决方式?

一、需求&#xff1a; 使用h5开发的网站&#xff0c;首页的banner是一个video视频&#xff0c;在PC端上和手机浏览器上都能正常播放&#xff0c;但是在手机微信浏览器里面视频是无法自动播放的。 二、实现效果&#xff1a; 1.微信浏览器的效果&#xff1a; 2.正常效果&…

如何实现高效代码审查,赋能大规模开发

对于许多企业来说&#xff0c;代码审查都是开发过程中不可缺少的一环。软件开发人员通常会对代码审查感到又爱又恨。一般来说&#xff0c;实施代码审查的企业普遍认为通过及早发现问题和低效率&#xff0c;在长远来看可节省时间。 阅读本篇文章&#xff0c;您将了解到什么是代…

JS浮点数精度问题及解决方案

前端面试大全JS浮点数精度问题及解决方案 &#x1f31f;经典真题 &#x1f31f;浮点数精度常见问题 &#x1f31f;为什么会有这样的问题 &#x1f31f;真题解答 &#x1f31f;总结 &#x1f31f;经典真题 为什么 console.log(0.20.10.3) 得到的值为 false &#x1f31f;…

vs-code之vue3插件

1.Vue 3 Support - All In One Vue3 代码片段突出显示了 Visual Studio Code 的格式化程序生成器 生成vue3对应的的代码 如ref等&#xff0c; 2.Volar 相信使用 VSCode 开发 Vue2 的同学一定对 Vetur 插件不会陌生&#xff0c;作为 Vue2 配套的 VSCode 插件&#xff0c;它的主…

C++学习之路(十)C++ 用Qt5实现一个工具箱(增加一个时间戳转换功能)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《JSON数据格式化》功能&#xff0c;还是比较实用的。为了继续丰富我们的工具箱&#xff0c;今天我们就再增加一个平时经常用到的功能吧&#xff0c;就是「 时间戳转换 」功能&#xff0c;而且实现点击按钮后文字进行变…

Unity中C#如何访问并修改Shader材质

文章目录 前言一、我们用点击按钮来改变Shader传入的颜色值1、在渲染GUI时&#xff0c;绘制一个按钮2、我们使用一个公共的成员变量存储需要进行修改的游戏对象3、最后给绘制的按钮点击增加逻辑即可 二、测试使用的代码1、Shader代码&#xff1a;2、C#脚本 前言 我们写好Shade…

电源自动测试系统| 电源模块温度循环怎么测试?

在一些应用领域&#xff0c;电源模块会在极端环境温度条件下工作。为了确保电源在高低温环境下可以正常运行&#xff0c;满足设备需求&#xff0c;需要对电源模块进行温度循环测试。 温度循环测试是指电源模块经过升温、保温、降温等多次循环试验来检测其在温度变化下的耐热性、…

关于自动化测试框架pytest的Fixture固件

什么是固件 Fixture 翻译成中文即是固件的意思。它其实就是一些函数&#xff0c;会在执行测试方法/测试函数之前&#xff08;或之后&#xff09;加载运行它们&#xff0c;常见的如接口用例在请求接口前数据库的初始连接&#xff0c;和请求之后关闭数据库的操作。 我们之前在A…

Hana Studio打开BW失败

Hana Studio打开BW失败 JCo initialization failed with java.lang.UnsatisfiedLinkError: D:\ycy\BW培训\HANA\configuration\org.eclipse.osgi\357\0.cp\lib\sapjco3.dll: Can’t find dependent libraries 这个提示应该是VC版本问题&#xff0c;按如下链接中的地址下载安装…

使用SD-WAN新方式,解锁分公司访问总部私有云

某企业是一家跨地区运营的大型企业&#xff0c;总部位于上海&#xff0c;拥有多个分公司遍布全国。其中北京分公司作为该企业在北方地区的重要分支机构&#xff0c;负责着该地区的市场开拓和业务发展。 为了实现分公司与总部之间的有效沟通和信息共享&#xff0c;北京分公司使用…