当前位置:网站首页>XDOJ-统计正整数个数
XDOJ-统计正整数个数
2022-08-08 17:12:00 【全情】
完整代码如下
在这里插入#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i,j,temp;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//以上为数组排序功能,以下为核心代码
for(i=0;i<n-1;i++){
if(a[i]==a[i+1]){
for(j=i+1;j<n-1;j++){
a[j]=a[j+1];
}
i--; //i--可是重点,如果前位与后位一旦相当,经过提前之后还要判断原来位与新后卫是否相等。
//比如
n--;
}
}
for(i=0;i<n;i++){
printf("%d\n",a[i]);
}
return 0;
}
核心代码如下
if(a[i]==a[i+1]){
for(j=i+1;j<n-1;j++){
a[j]=a[j+1];
}
i--; //i--可是重点,如果前位与后位一旦相当,经过提前之后还要判断原来位与新后卫是否相等。
n--;
}
}
首先,此算法中有个点需要注意,i在- -,同时n也必定- -;
案例演算:
案例 111223
前位与后位相等,提前一次
11223,但此时i没有- -,i顺利变为了1
显然arr[1]= arr[2]
所以一旦发生前卫等于后位的情况,一定要i - -
原理:从原来发生相等的位置继续与后位作比较,相当于每次一直提前,直到前位不等于后位才可以从下一位数字作为比较起点与之后的数字比较。
即每次做比较的位置为起点,直到只剩下它自身一个数的时候才移动起点。
同时n也一定要- -,因为最终的情况一定是 123333
尾数肯定是相等的,如果没有n --,3始终等于后面的3
,i始终- - 后又+ +
进入死循环
当然,如果觉得抽象,从简单角度理解,11223>>12233>>12333,每做一次提前处理就多出来一个不属于原数组的尾巴,原数组可没有那么多3,砍掉就好了
补充
以上只是从小到大排了不重复序,下面为修改后可以统计的代码片段
for(i=0;i<n;i++){
b[i]=1;
}
for(i=0;i<n-1;i++){
if(a[i]==a[i+1]){
for(j=i+1;j<n-1;j++){
a[j]=a[j+1];
}
b[i]++;//第一位的数字一共出现了几次,经过不断提前后,换到下一个起点i才++,此时第二位的数字就是第二种数字
i--; //i--可是重点,如果前位与后位一旦相当,经过提前之后还要判断原来位与新后卫是否相等。
//比如
n--;
}
}
for(i=0;i<n;i++){
printf("%d:%d\n",a[i],b[i]);
}
return 0;
}
边栏推荐
猜你喜欢
七、jmeter发出请求的逻辑
Appium 自动化测试环境搭建
【 8.7 】 source code - card to LCM with GCD 】 【 】
【论文阅读】RAL 2022: Receding Moving Object Segmentation in 3D LiDAR Data Using Sparse 4D Convolutions
【开源教程2】疯壳·开源编队无人机-硬件资源简介
测试/开发程序员停滞不前,倦怠怎么办?突破各种失败和挫折......
The latest research from PNAS: 81% problem solving rate, neural network Codex opens the door to the world of advanced mathematics
Acwing第 63 场周赛【未完结】
以数治企,韧性成长,2022 年中国 CIO 数字峰会成功举行
yarn : 无法加载文件 D:xxx\node_global\yarn.ps1 因为在此系统上禁止运行脚本
随机推荐
好用的项目工时管理系统有哪些
laravel数据库: 查询构造器
[深入研究4G/5G/6G专题-54]: L3信令控制-3-软件功能与流程的切分-CU-UP网元的信令
PNAS最新研究:81%解题率,神经网络 Codex 推开高等数学世界大门
leetcode:306. 累加数
iNFTnews | Metaverse brings new ideas for enterprise development
五、jmeter脚本的基本构成&断言
迁移学习(Transfer Learning)的背景、历史
Obtain - 64 [chances] : the soldier, subtlety also - 5 - read sun tzu - melee meter
Qt——选择文件夹并获取路径以及文件夹下子文件
APICloud AVM wraps date and time selection components
使用train_test_split划分训练数据集、测试数据集
【 8.7 】 source code - card to LCM with GCD 】 【 】
L2-026 小字辈 (25 分)
B+树与B-树的区别
L2-015 互评成绩 (25 分)
Tensorflow教程(四)——MNIST项目入门
JVM内存Dump原理与在线分析实战
D. Districts Connection
L2-022 重排链表 (25 分)(模拟链表)