当前位置:网站首页>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;
}
边栏推荐
- Mysql都有那些最需要掌握的原理?
- 2.MySQL链接和创建数据库,创建数据表
- Nervegrowold: machine advanced learning advice
- 【开源教程2】疯壳·开源编队无人机-硬件资源简介
- L2-025 分而治之 (25 分)
- L2-008 最长对称子串 (25 分)
- Obtain - 64 [chances] : the soldier, subtlety also - 5 - read sun tzu - melee meter
- Qt——选择文件夹并获取路径以及文件夹下子文件
- L2-019 悄悄关注 (25 分)
- C1. Pokémon Army (easy version)
猜你喜欢

APICloud AVM 封装日期和时间选择组件

DSPE-PEG-Biotin,385437-57-0,磷脂-聚乙二醇-生物素用于生物分子的检测和纯化

DSPE-PEG-NH2,DSPE-PEG-amine,474922-26-4,磷脂-聚乙二醇-氨基科研试剂

4. S32K14X study notes: S32 Design Studio new and imported projects

京东二面:高并发设计,都有哪些技术方案?

字节一面:TCP 和 UDP 可以使用同一个端口吗?

Digital image processing (6) -- image compression

好用的项目工时管理系统有哪些

迁移学习(Transfer Learning)的背景、历史

The latest research from PNAS: 81% problem solving rate, neural network Codex opens the door to the world of advanced mathematics
随机推荐
synchronized加载static关键字前和普通方法前的区别?
DSPE-PEG-FITC,Fluorescein-PEG-DSPE,修饰性PEG磷脂-聚乙二醇-荧光素
L2-011 玩转二叉树 (25 分) (二叉树)
C. Palindromifier
Charles MOCK 数据 htpps代理
信号生成和可视化
L2-015 互评成绩 (25 分)
C语言中变量在内存中的保存与访问
LeetCode_回溯_中等_491.递增子序列
钱放在股票账户安全吧?
好用的项目工时管理系统有哪些
pytorch常用语句
mysql进阶(二十九)常用函数汇总
通俗易懂的epoll
咸阳广发证券股票开户安全吗,需要准备什么证件
4. S32K14X study notes: S32 Design Studio new and imported projects
The difference between B+ tree and B- tree
【TypeScript】函数类型:返回值类型和参数类型到底如何定义?
七、jmeter发出请求的逻辑
中金财富开户安全吗?怎么操作?