nyoj255 C小加之随机数

2024-02-16 11:48
文章标签 随机数 nyoj255

本文主要是介绍nyoj255 C小加之随机数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C小加 之 随机数

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
ACM队的“C小加”同学想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(0<N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助 C小加 完成“去重”与“排序”的工作。
输入
第一行输入整数T(1<T<10)表示多少组测试数据,
每组测试数据包括2行,
第1行为1个正整数,表示所生成的随机数的个数:N(0<N≤100)
第2行有N个用空格隔开的正整数,为所产生的随机数。
(随机数为题目给定的,不需要ACMer生成)
输出
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。
第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
1
10
20 40 32 67 40 20 89 300 400 15
样例输出
8
15 20 32 40 67 89 300 400
 
代码:
 
#include<stdio.h>
int main()
{
	int a[101],b[101];
	int T,N,i,j,num;
	scanf("%d",&T);
	while(T--)
	{
		num=0;
		scanf("%d",&N);
		for(i=0;i<N;i++)
		scanf("%d",&a[i]);
		for(i=0;i<N-1;i++)
		{
			for(j=i+1;j<N;j++)
			{
				if(a[i]==a[j])
				{
					a[j]=0;
				}
			}
		}
		for(i=0,j=0;i<N;i++)
		{
			if(a[i])
			{
				b[j++]=a[i];
				num++;
			}
		}
		printf("%d\n",num);
		for(i=0;i<num-1;i++)
		for(j=0;j<num-i-1;j++)
		{
			int t;
			if(b[j]>b[j+1])
			{
				t=b[j];
				b[j]=b[j+1];
				b[j+1]=t;
			}
		}
		for(i=0;i<num-1;i++)
		printf("%d ",b[i]);
		printf("%d",b[num-1]);
		printf("\n");
	}
	return 0;
}

这篇关于nyoj255 C小加之随机数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714448

相关文章

明明的随机数处理问题分析与解决方案

明明的随机数处理问题分析与解决方案 引言问题描述解决方案数据结构设计具体步骤伪代码C语言实现详细解释读取输入去重操作排序操作输出结果复杂度分析 引言 明明生成了N个1到500之间的随机整数,我们需要对这些整数进行处理,删去重复的数字,然后进行排序并输出结果。本文将详细讲解如何通过算法、数据结构以及C语言来解决这个问题。我们将会使用数组和哈希表来实现去重操作,再利用排序算法对结果

Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类

废话不多说,贡献一下code 1.编号生成工具 import org.apache.commons.lang3.StringUtils;import java.math.BigInteger;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;/*** 编号生成工具*/@

Cocos2dx 3.0 过渡篇(五) 随机数的获取

1、简单的随机数用法:CCRANDOM_0_1 示例如下: [cpp] int HelloWorld::getRand(int start,int end)  {   float i = CCRANDOM_0_1()*(end-start+1)+start;  //产生一个从start到end间的随机数   return (int)i;  }   2、上述的方法虽然简便,但是运行

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先

STM32G474之随机数发生器

STM32G474一个RNG设备,它能提供由“集成模拟电路”生成的32位随机数,是硬件随机数发生器。在C语言中,若包含头文件“stdlib.h”,我们就可以使用有rand()函数,它是C语言中用于生成随机数的函数。 1、“随机数”的应用 1)、一般用“随机数”作为延时函数的传递参数,来获取不同的延时时间。在多主机通讯系统中,要求时间同步采集数据,但是数据传输,若发生在同一时刻,通讯就会发生碰撞

取Random范围内的随机数

Random rand = new Random();        int m = rand.nextInt(); //int范围类的随机数        int n = rand.nextInt(100); //0-100范围内的随机数      包含0,不包含100.

linux 随机数生成原理

简介 在信息学中,信息熵是用来描述系统混乱无序程度的物理量;系统的熵越大,系统就越无序,所含有用信息量越少,不确定度越大。 Linux内核中有一个熵池设备,专门收集来自系统环境的一些噪音,来产生高质量随机数序列;这些噪声主要来自于硬件设备发生中断的时间,用户点击鼠标的时间间隔,硬件噪声,磁盘活动等 /dev/random与/dev/urandom 这两个字符设备文件都是利用Linux内

SQL循环生成随机数

DECLARE @i INTDECLARE @dian DECIMAL(7,2)SET @i = 1WHILE @i < 40BEGINSET @dian = rand()*1000INSERT INTO tbl_energy_electricity_hour_201701([value])VALUES(CAST(@dian AS DECIMAL(7,2)))SET @i = @i + 1end

NumPy(二):创建数组【生成固定范围的数组:arange、linspace】【生成0和1的数组:zeros()等】【从现有数组生成:array、asarray】【生成随机数组:np.random】

生成0和1的数组 np.ones()np.ones_like()从现有数组中生成 np.array – 深拷贝np.asarray – 浅拷贝 生成固定范围数组 np.linspace() nun – 生成等间隔的多少个 np.arange() step – 每间隔多少生成数据 np.logspace() 生成以10的N次幂的数据 生成随机数组 正态分布 里面需要关注的参数:均值:u

NumPy(一):简介【主要功能:操作数组、矩阵】【Python + NumPy == Matlab】【包括很多实用的数学函数】【覆盖了很多的数学领域, 比如:线性代数、傅里叶变换、随机数生成】

一、NumPy是什么? NumPy是一个开源的Python科学计算库。 Numerical Python 二、NumPy有什么功能 NumPy主要的功能之一用来操作数组和矩阵。 NumPy是科学计算、深度学习等高端领域的必备工具。 使用TensorFlow、Caffe。框架训练神将网络模型时,需要进行大量复杂的计算,可以直接调用NumPy里面的API NumPy包含了很多实用的数学函数