1060 爱丁顿数

2023-11-03 16:20
文章标签 1060 爱丁顿

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

一.问题:

英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。

现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。

输入格式:

输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。

输出格式:

在一行中给出 N 天的爱丁顿数。

输入样例:

10
6 7 6 9 3 10 8 2 7 8

输出样例:

6

二.思路:

        首先要搞清楚什么是爱丁顿数。

知道以后,就好做了。

三.代码实现:

#include<stdio.h>
void quick_sort(int num[],int left,int right)
{int i = left;int j = right;int t = 0;int temp = num[left];if(i > j){return;}while(i != j){while(num[j] <= temp && i < j){j--;}while(num[i] >= temp && i < j){i++;}if(i < j){t = num[i];num[i] = num[j];num[j] = t;}}num[left] = num[i];num[i] = temp;quick_sort(num,left,i-1);quick_sort(num,i+1,right);
}int main()
{//输入数据int N = 0;scanf("%d",&N);int num[100001]= {0};//记录每日骑行天数for(int i = 0;i < N;i++){scanf("%d",&num[i]);}//将每日骑行天数按从大到小排序quick_sort(num,0,N-1);//计算,仔细体会这里是怎么处理的int E = 0;for(int i =0;i <N;i++){if(num[i] > i+1){E++;}else{break;}}printf("%d",E);return 0;
}

这篇关于1060 爱丁顿数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

杭电1060

不知道公式,修改了别人的代码,公式应该是a=n*lgn;然后10^(a的小数)取整型; #include #include int main() {     __int64 k,b,i,d;     double a,m,n,c;     scanf("%I64d",&k);     while(k--)     {         scanf("%lf",&n);         a=n*

zoj 1060 poj 1094 Sorting It All Out

题意:将给定的关系按从小到大排成一个唯一的序列。 思路:没输入一条边,使用拓扑排序判断能否得到最终结果,拓扑排序的结果有三种情形。 ⑴如果该图存在环,那么给定的关系肯定互相矛盾。 ⑵如果不存在环,但是拓扑排序结束后,排序得到的序列中的元素个数小于给定的元素个数,那么给定的关系不足以判断出全部元素的大小关系。 ⑶如果拓扑出来的序列中的元素个数等于给定的元素个数,那么给出的关系可以判断出

1060 爱丁顿数(测试点5)

solution1(测试点5不通过) 所谓“E天骑行超过E公里”,注意没有要求是第E天 对于直接判断变成了第E天骑行距离超过E公里,曲解了题意 例如对于 31 2 3 输出为1 第1天骑行3公里,满足条件;第2天骑行2公里,不满足超过的条件,最大的e为1 #include<iostream>using namespace std;int main(){int n, cnt =

sdnuoj 1060 找第K大数

1060.找第K大数Time Limit: 1000 MS    Memory Limit: 32768 KB Total Submission(s): 109    Accepted Submission(s): 22 Description 给定 n(1 <= n <= 10000000) 个正整数(<= 2147483647),找出其中的第K(1 <= K <= 10)大数。 Input

杭电OJ 1060 :Leftmost Digit

C++代码: #include<iostream>#include<math.h>using namespace std;int main(){long long T;double n;cin>>T;while(T--){cin>>n;double a=n*log10(n);double b=a-(long long)a;int c=(int)pow(10.0,b);cout<<c<<

【ZZULIOJ】1060: 逆序数字(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述  输入一个正整数,将其逆序输出,每个数字后有一个空格。  输入  输入一个正整数n,你可以假设n在int范围内  输出  将n按其逆序输出,每个数字后有一个空格,输出占一行。例如,输入12354,输出4 5 3 2 1  样例输入 Copy 12354 样例输出

PAT Basic Level 1060 爱丁顿数 解题思路及AC代码 v0.93

PAT 乙级 1060 爱丁顿数 1. 题目简述及在线测试位置2. 基本思路3. 完整AC代码 1. 题目简述及在线测试位置 1.1 根据输入数据求爱丁顿数。所谓爱丁顿数,就是 出现N次、每次均大于N的整数N;举个栗子:3 3 2 ,爱丁堡数是2 1.2 在线测试位置: 1060 爱丁顿数 2. 基本思路 2.1 多重循环的思路必然导致部分测试点Fail,需要使用线性方

PAT甲级1060,1061解题报告

1060 Are They Equal (25 point(s)) If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they are both saved as 0.123×10​5​​ with simple chopp

1060. 爱丁顿数(25) PAT乙级1117. Eddington Number(25) PAT甲级

[甲级传送门](https://www.patest.cn/contests/pat-a-practise/1117 ) 乙级传送门 将所有数从大到小排序,从左往后数,当第i个数小于等于i时满足要求 #include<iostream>#include<algorithm>using namespace std;#define MAX_N 100100int N;int a[MAX_

51nod 1060 最复杂的数(找以内因子最多的数)

文章目录 题目链接: 题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1060 因子最多肯定是先找小的质因子,再选大的质因子,而且大的质因子的个数不会超过小的,(不然数量相同的话那我肯定选小的组成的数要小些) #include"bits/stdc++.h"using namespace