大整数排序 (九度教程第64题) 高精度整数比较大小

【高精度】比较大小 比较大小 Time Limit 1000ms Memory Limit 65536K description 给定整数a和b(均大于0并小于100位),如果a大于b,输出1,相等输出0,b大于a输出-1。 input 输入数据包含多个测试实 阅读详情

题目链接

题目描述:
对N个长度最长可达到1000的数进行排序。
输入:
输入第一行为一个整数N,(1<=N<=100)。
接下来的N行每行有一个数,数的长度范围为1<=len<=1000。
每个数都是一个正数,并且保证不包含前缀零。
输出:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
样例输入:
3
11111111111111111111111111111
2222222222222222222222222222222222
33333333
样例输出:
33333333
11111111111111111111111111111
2222222222222222222222222222222222

解题思路:
使用高精度整数结构体,从最高位开始比较即可。

AC代码:

#include<iostream>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
struct bigInt {
	int d[1005];
	int size;
	void init() {//初始化
		for (int i = 0; i < 1005; i++) {
			d[i] = 0;
		}
		size = 0;//目前还没有任何一个单位被使用
	}
	void set(char str[]) {//提取字符串
		init();
		int len = strlen(str);
		for (int i = len - 1; i >= 0; i--) {
			d[size++] = str[i] - '0';
		}
	}
	void output() {//输出函数
		for (int i = size - 1; i >= 0; i--) {
			printf("%d", d[i]);
		}
		if (size == 0) printf("0");
		printf("\n");
	}
}list[101];

bool cmp(bigInt a, bigInt b) {
	for (int i = 1005 - 1; i >= 0; i--) {
		if (a.d[i] < b.d[i]) return true;
		else if (a.d[i] > b.d[i]) return false;
	}
	return false;
}

int main() {
	int n;
	char str[1002];
	while (scanf("%d", &n) != EOF) {
		for (int i = 1; i <= n; i++) {
			scanf("%s", str);
			list[i].set(str);
		}
		sort(list + 1, list + 1 + n, cmp);
		for (int i = 1; i <= n; i++) {
			list[i].output();
		}
	}
	return 0;
}
C++高精度算法之比大小 比大小 描述 给你两个很大的正数,你能不能判断出他们两个数的大小呢? 比如123456789123456789要大于123456789 输入 每组数据占一行,输入两个不超过1000位的10进制整数a,b 数据保证输入的a,b没有前缀的0 如果输入0 0表示输入结束。测试数据组数不超过10组 输出 如果a>b则输出“a>b”,如果a 阅读详情

相关推荐

C++【字符串】高精度整数比大小

比如123456788888888888888>12345678888888。这题要考虑的东西很多,主要还是正负问题。题目链接里的是阉割版,我做了优化。两行,每行一个整数,不超过999位。若第一个数大,则输出'>';若第一个数小,则输出'

yzx_jerry的博客 1399

Note231023高精度数字的比较

3.如果两个数对应位相同a(1)==b(1),则continue比较下一位。1.如果两个数的第一位大小比较是a(1)>b(1),则直接判断a>b。2.如果两个数的第一位大小比较是a(1)<b(2),则直接判断a<b。如果sum[j]<str[j],则可以判断sum<str,如果sum[j]==str[j],结论未定,例:比较sum和输入数据str的大小。如果sum[j]>str[j],则。,继续计算下一个sum。

HalfwayW的博客 192

(C++)高精度整数的存储、读入、比较和四则运算

目录 1. 存储 2. 读入 3. 比较大小 4. 加法 5. 减法 6. 高精度整数和低精度整数的乘法 7. 高精度整数除以低精度整数 高精度整数,又称大整数,其含义就是用基本数据类型无法存储其精度的整数。如:10进制下有着1000个数位的整数。 低精度整数,就是可以用基本数据类型存储的整数。 1. 存储 采用整型数组顺位存储,即整数高位存储在数组高位。为了方便随时获取长度,因此定一个int len和int []组成结构体bign(取自big number)。 同时在结构体中使用构

行步至春深 2355

关于大整数(高精度数组)排序

大数组是我老师叫的,高精度数组是高中的时候不知道谁叫的今天晚上考了考试,考了5题,50分钟多一点做完,大多数时间是卡在高精度数组排序了那个游泳馆收费是因为题目没看加上continue写成break错了其他都还行考试期间不让看代码,我就只把题目放这给你们看看了。

Fool256353的博客 216

排序和高精度算法总结

用时一周多,再接再厉

weixin_43492045的博客 404

《A+B Problem(高精)》

40%40% 的测试数据,0≤a,b≤10180≤a,b≤1018。20%20% 的测试数据,0≤a,b≤1090≤a,b≤109;高精度加法,相当于 a+b problem,输出只有一行,代表 a+ba+b 的值。

Jasmine_llq的博客 954

【算法基础】基础算法(二)--(高精度、前缀和、差分)

当一个数很大,大到 int 无法存下时,我们可以考虑用数组来进行存储,即数组中一个位置存放一位数。但是对于数组而言,一个数顺序存入数组后,对其相加减是很简单的。但是当需要进位时,还是很麻烦的,因为要将整个数组全都往后移动一位,将最高位的进位位置空出来,这个操作的时间复杂度是 O(n)。不过,我们有一种方法可以很好的解决进位这个问题,就是将这个数的个位数存至数组中的第一位(即 a[0] ),最高位存入数组的最后一位(a [n-1])。这样在处理进位时可以直接在数组的最后一位添加即可。最后在输出时即可。

Elena's Blog 1447

HFSS线圈仿真避坑指南:从建模到寄生参数分析的完整流程

本文详细介绍了HFSS线圈仿真的完整流程,从精准建模到寄生参数优化,特别针对Ansys Electronics Desktop用户提供实用指南。涵盖线圈几何构建、材料属性配置、端口激励设置及寄生电阻与电感分析等关键步骤,帮助工程师避免常见错误,提升仿真精度与效率。

weixin_29209801的博客 549

高精度数据之间如何比较大小?例题来自:P1781 宇宙总统

题目描述地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 $n$ 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入格式第一行为一个整数 n,代表竞选总统的人数。接下来有 n 行,分别为第一个候选人到第 n 个候选人的票数。输出格式共两行,第一行是一个整数 m,为当上总统的人的号数。第二行是当上总统的人的选票。样例样例输入59876512365879541022356985678样例输出41022356提示。

qi_e_e的博客 669

海康视觉平台VisionMaster使用学习笔记(1)

双击图像源设置图像源的属性,像素格式分为Mono8和RDB24分别对应导入的图像是彩色还是黑白。打开相机驱动软件MVS,对连接的相机进行属性上的配置,先对相机的IP进行对应的设置。将自动触发的使能打开,保存配置好的相机属性,默认保存到用户集1中。点击MVS软件中的触发按钮,查看相机是否进行正常的触发拍照。打开VM软件添加一个图像源,选择图像源选项拖出图像源。回到VM软件中将选择相机选项选择到配置好参数的相机。取图方式也可以调整为相机取图,将图像源改为相机。双击相机进行连接后对相机的属性进行配置。

A567852的博客 1万+

Starlink卫星动力学系统仿真建模前传1-时空系统介绍

对于在轨道上运动的航天器由于速度接近第一宇宙速度,为了获取准确的位置信息对时间的精度要求极高,为了准确描述航天器的运动规律,本节对卫星仿真建模中用到的各种时间系统进行介绍。卫星轨道平面为坐标平面,坐标原点位于卫星系统质心,轴由卫星系统质心指向地心(当地垂线),轴在轨道面内垂直于轴并指向卫星的前进方向,轴同、轴构成右手系,指向轨道面负法线方向。不同坐标系下的建立的运动形式与复杂程度不同,会直接影响运动方程的求解繁简程度,因此,选取适当的坐标系具有重要的意义。定义星体坐标系,该坐标系简记为系,与卫星本体固连。

xspace的博客 1437

高精度四则运算

对一个整数来说,如果超过了当前数据类型所能表示的范围,那么就只能用数组去模拟输出,下面介绍高精度的储存、高精度比较大小和四则运算(只适用于正整数)。 一、高精度的储存 大整数的储存使用一组数组来储存的,数组的低位表示数的低位,比如整数123456789储存在数组中就是d[0] = 9, d[1] = 8 …d[8] = 1, 但是我们用字符串输入时,字符串的低位存的是整数的高位,我们在储存时需要反转一下,这是需要一个len来记录整数的位数,并和数组组成一个结构体。 struct bign{ int d[1

Leslie_hollow的博客 1066

从‘平行’到‘鱼骨’:手把手拆解AlGaN/GaN HEMT多栅指结构的布局优化实战

本文深入探讨了AlGaN/GaN HEMT多栅指结构的布局优化,从传统的平行栅结构到创新的鱼骨栅结构,详细解析了如何通过优化信号路径和热管理提升功率器件的性能。文章结合实测数据和EDA工具,展示了鱼骨栅结构在相位一致性、热阻和版图利用率方面的显著改进,为射频功率放大器设计提供了实用指导。

weixin_27061475的博客 442

高精度比较大小string

描述:n个人有各自的名字,和分数,数字很大,要用高精度才行,如何给他们从大到小排序?解决:用sruct和sort1。分数是string类型的,如果数字位数(用.size())相同,比较各位的字符大小,否则按位数从大到小排;bool cmp(P p,P q){ if(p.mark.size()==q.mark.size()) { if(p.mark==q.mark)r...

k42946的博客 1596

Armbian 国内源一键配置:告别卡顿,加速软件更新

本文详细介绍了如何为Armbian系统配置国内软件源,以解决默认国外源导致的更新缓慢、连接超时等问题。通过手动修改配置文件或使用高效的一键换源脚本,可将源切换至清华大学、阿里云等国内镜像站,实现apt更新与软件安装速度的质的飞跃,让Armbian开发体验更加流畅高效。

weixin_29215815的博客 244

DeepSeek API调用太复杂?OneAPI一站式聚合解决方案

本文介绍了OneAPI如何作为一站式聚合解决方案,简化DeepSeek API的调用流程。通过统一接口、智能路由和模型映射等核心功能,OneAPI大幅降低了多API适配的复杂性,提升开发效率。文章还提供了详细的部署指南和高阶使用技巧,帮助开发者快速实现API聚合管理。

weixin_27215337的博客 381

分式比较大小——高精度

高精度分式比较大小 Description 已知两个分数 a/x与 b/y,让你判断两个分数的大小。 Input 多组输入,对于每一组输入一行包含四整数 x,a,y,b至少有 10^5 组数据 Output 对于每一组输入,输出一行,包含一个字符 如果 a/x= b/y,则输出"=" 如果 a/x> b/y,则输出">" 否则输出"<" Sample Input 1 1 2 1 ...

guotuxuan的博客 1236

Comsol 弧形声学换能器声聚焦仿真

1. 弧度和曲率半径:弧形声学换能器的形状和曲率半径对声聚焦效果有重要影响。通常,较小的曲率半径和较大的弧度可以实现更强的声聚焦效果。弧形声学换能器声聚焦是指将声波能量集中在弧形声学换能器的特定区域内,以实现更强的声场强度和分辨率。4. 数值仿真和优化:使用声学仿真软件进行数值仿真可以帮助设计和优化弧形声学换能器的声聚焦效果。通过调整几何参数、材料特性和激励信号等参数,可以模拟和优化声聚焦效果。2. 激励信号:通过调整激励信号的频率和幅值,可以实现声波在弧形声学换能器中的聚焦效果。

声学黑洞仿真工作室 1618

高精度乘法 + 大数比较

高精度乘法 #include<cstring> #define MAX 105 using namespace std; int x[MAX+10],y[MAX+10],z[MAX*2+10];//积的位数最多是因数位数的两倍 char s[MAXN];//结果 void hMulti(char *a,char *b,char *s){ memset(z,0,sizeof(z...

Meloor的博客 292

innovus中如何设置cts参数

上面是设置cts的一般设置,如果需要对某些skew group或者某些clock tree设置不一样的参数,如需要对clk1这个clock设置不一样的inverter,可以使用。需要查询已经设置过的ccopt参数,可以使用get_ccopt_property去查询,方法和set_ccopt_property一致。言归正传,cts的设置命令是set_ccopt_property,获取命令是get_ccopt_property。另外,set_ccopt_property提供一套命令查询方法。

芯冰乐 544

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

用高精度实现浮点数的比较

我们知道在C/C++语言中浮点数的比较存在精度误差, 当给定的float有效数在6位以内转换为字符不会丢失精度,当有效位数大于6位就会存在精度丢失。 因此我们无法用(float a==float b)进行判定,因为两个浮点类型或者是双精度类型的差值小于设定的容许差值即可认为两个数是近似相等的, 即 |x - y| <ε(x、y 为两个浮点类型或者双精度类型的数据,ε 为容许差值)。 那么这...

weixin_34205076的博客 805

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

bccomp比较二个高精确度数字-两个浮点数比较大小等

$num1=22.05; $num2=22.06; var_dump($num2-$num2);

houxianyj的专栏 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

比较(高精度)

char sa[10000]; char sb[10000]; int a[10000]; int b[10000]; int m_in(){ scanf("%s %s",sa,sb); int lena=strlen(sa); int lenb=strlen(sb); for(int i=1;i<=lena;i++){ a[i]=sa[le...

King_fxb 526

避免了高精度比较大小,同长度string型可直接比大小

#include <bits/stdc++.h> using namespace std; int main(){ string s,ans,m; ios::sync_with_stdio(false); int n,maxl=0,num; cin>>n; for(int i=1;i<=n;i++){ ...

weixin_30457881的博客 165

a+b 高精度 (加法或比较大小)

题目描述 实现一个加法器,使其能够输出a+b的值。 输入 输入包括两个数a和b,其中a和b的位数不超过1000位。 输出 可能有多组测试数据,对于每组数据, 输出a+b的值。 样例输入 Copy 6 8 2000000000 30000000000000000000 样例输出 Copy 14 30000000002000000000 高精度自定义的函数,都是模板函数 #include<bits/stdc++.h> using namespace std; typedef long long

weixin_51309151的博客 529

zcmu-1562: 比较大小(对数运算&&精度&&大数)

1562: 比较大小 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 481  Solved: 157 [Submit][Status][Web Board] Description 众所周知,GTY是一位神犇,为了更好的虐场,他从来不写数学作业而是去屠题,他的数学老师非常不爽,但由于GTY每次考试都AK,她也不能说什么,有一天老师在黑板上写了...

来啦(#^.^#) 1030
上一篇: 九度教程第63题 牛客网 浮点数相加
下一篇: 10进制 vs 2进制 九度教程第65题 高精度运算
RPG_Zero
博客等级 码龄8年 77粉丝 181原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值