信息学奥赛

信息学奥赛一本通C++语言——1060:均值

和自甴很熟 提交于 2020-02-20 18:11:06
【题目描述】 给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。 【输入】 输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。 【输出】 输出一行,包含一个浮点数,表示均值,精确到小数点后4位。 【输入样例】 2 1.0 3.0 【输出样例】 2.0000 # include <cstdio> int main ( ) { int n ; double d , s , a ; scanf ( "%d" , & n ) ; for ( int i = 0 ; i < n ; i ++ ) { scanf ( "%lf" , & d ) ; s + = d ; } a = ( double ) s / n ; printf ( "%.4lf" , a ) ; return 0 ; } # include <cstdio> int main ( ) { int n ; double arr [ 100 ] ; double avg , sum ; scanf ( "%d" , & n ) ; for ( int i = 0 ; i < n ; i ++ ) { scanf ( "%lf" , & arr [ i ] ) ; //scanf默认的分隔符是所有空白字符 sum + = arr [ i

信息学奥赛一本通C++语言——1053:最大数输出

自古美人都是妖i 提交于 2020-02-19 12:07:21
【题目描述】 输入三个整数,数与数之间以一个空格分开。 输出一个整数,即最大的整数。 【输入】 输入为一行,包含三个整数,数与数之间以一个空格分开。 【输出】 输出一行,包含一个整数,即最大的整数。 【输入样例】 10 20 56 【输出样例】 56 代码 # include <cstdio> int main ( ) { int a , b , c ; int max ; scanf ( "%d %d %d" , & a , & b , & c ) ; //算法:先比较前两个数a和b,将最大的数存入max、再将第三个数c与max比较,谁大就输出谁 if ( a > b ) { max = a ; } else { max = b ; } if ( max < c ) { max = c ; } printf ( "%d" , max ) ; return 0 ; } 来源: CSDN 作者: SpaceHub 链接: https://blog.csdn.net/weixin_46272402/article/details/104387848

信息学奥赛一本通(C++版)continue

不打扰是莪最后的温柔 提交于 2020-02-18 21:13:15
第一部分 C++语言 第六章 函数 第二节 递归算法 转进制 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 8729 通过数: 6204 【题目描述】 用递归算法将一个十进制数X转换成任意进制数M(M≤16)。 【输入】 一行两个数,第一个十进制数X,第二个为进制M。 【输出】 输出结果。 【输入样例】 31 16 {将十进制 31 转化为十六进制数} 【输出样例】 1F 【我的代码】 # include <iostream> using namespace std ; void f ( int , int ) ; int main ( ) { int n , m ; cin >> n >> m ; f ( n , m ) ; system ( "pause" ) ; return 0 ; } void f ( int n , int m ) { char ch [ 16 ] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' } ; if ( n / m != 0 ) f ( n / m , m ) ; cout << ch [ n % m ] ; } 最大公约数 【题目描述】 用递归算法求两个数m和n的最大公约数。

信息学奥赛一本通C++语言——1013:温度表达转化

北城余情 提交于 2020-02-08 09:03:08
【题目描述】 利用公式 C=5×(F−32)÷9 (其中C表示摄氏温度,F表示华氏温度)进行计算转化,输入华氏温度F,输出摄氏温度C,要求精确到小数点后5位。 【输入】 输入一行,包含一个实数F,表示华氏温度。(F≥−459.67) 【输出】 输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后5位。 【输入样例】 41 【输出样例】 5.00000 代码 # include <cstdio> int main ( ) { double F , C ; scanf ( "%lf" , & F ) ; C = 5 * ( F - 32 ) / 9 ; printf ( "%.5lf" , C ) ; return 0 ; } 来源: CSDN 作者: SpaceHub 链接: https://blog.csdn.net/weixin_46272402/article/details/104208426

信息学奥赛一本通C++语言——1019: 浮点数向零舍入

∥☆過路亽.° 提交于 2020-02-08 01:22:13
【题目描述】 输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。 【输入】 一个单精度浮点数。 【输出】 一个整数,即向零舍入到整数的结果。 【输入样例】 2.3 【输出样例】 2 代码 # include <cstdio> int main ( ) { float a ; scanf ( "%f" , & a ) ; printf ( "%d" , ( int ) a ) ; } 来源: CSDN 作者: SpaceHub 链接: https://blog.csdn.net/weixin_46272402/article/details/104216144

信息学奥赛一本通C++语言——1005:地球人口承载力估计

谁说胖子不能爱 提交于 2020-02-07 02:18:31
【题目描述】 假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。 为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人? 【输入】 一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。 【输出】 一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。 【输入样例】 110 90 90 210 【输出样例】 75.00 代码 # include <cstdio> # include <iostream> using namespace std ; int main ( ) { int x , a , y , b ; double z ; scanf ( "%d%d%d%d" , & x , & a , & y , & b ) ; z = ( double ) ( b * y - a * x ) / ( b - a ) ; printf ( "%0.2lf" , z ) ; return 0 ; } 来源: CSDN 作者: SpaceHub 链接: https://blog.csdn.net/weixin_46272402/article/details/104193274

信息学奥赛一本通C++语言——1003:对齐输出

狂风中的少年 提交于 2020-02-05 21:05:32
【题目描述】 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。 【输入】 只有一行,包含三个整数,整数之间以一个空格分开。 【输出】 只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。 【输入样例】 123456789 0 -1 【输出样例】 123456789 0 -1 代码 # include <cstdio> using namespace std ; int main ( ) { int a , b , c ; scanf ( "%d %d %d" , & a , & b , & c ) ; printf ( "%8d %8d %8d" , a , b , c ) ; return 0 ; } 来源: CSDN 作者: SpaceHub 链接: https://blog.csdn.net/weixin_46272402/article/details/104186489

信息学奥赛一本通奖学金(struct)

别来无恙 提交于 2020-01-20 02:09:15
信息学奥赛-奖学金(struct结构体) # include <iostream> using namespace std ; struct student { int xuehao ; int chinese , math , english ; int total ; } a [ 300 ] ; int main ( ) { int n ; student temp ; cin >> n ; for ( int i = 0 ; i < n ; i ++ ) { cin >> a [ i ] . chinese >> a [ i ] . math >> a [ i ] . english ; a [ i ] . total = a [ i ] . chinese + a [ i ] . math + a [ i ] . english ; a [ i ] . xuehao = i + 1 ; } for ( int j = 0 ; j < n - 1 ; j ++ ) for ( int i = 0 ; i < n - j - 1 ; i ++ ) { if ( a [ i ] . total < a [ i + 1 ] . total ) { temp = a [ i ] ; a [ i ] = a [ i + 1 ] ; a [ i + 1 ] = temp ; } if (

信息学奥赛一本通 病人排队

心不动则不痛 提交于 2020-01-20 00:53:00
信息学奥赛一本通病人排队(struct) # include <iostream> # include <algorithm> # include <cstring> using namespace std ; struct kanbing { string number ; int age ; } a [ 100 ] ; int main ( ) { kanbing temp , b [ 100 ] , c [ 100 ] ; int n , k = 0 , q = 0 ; cin >> n ; for ( int i = 0 ; i < n ; i ++ ) { cin >> a [ i ] . number >> a [ i ] . age ; } for ( int i = 0 ; i < n ; i ++ ) { if ( a [ i ] . age >= 60 ) { b [ k ] = a [ i ] ; k ++ ; } else { c [ q ] = a [ i ] ; q ++ ; } } for ( int i = 0 ; i < k - 1 ; i ++ ) for ( int j = 0 ; j < k - i - 1 ; j ++ ) { if ( b [ j ] . age < b [ j + 1 ] . age ) { temp = b [ j ]

信息学奥赛一本通:1208 2的幂次方表示 / 洛谷: P1010 幂次方

社会主义新天地 提交于 2019-12-20 23:49:10
幂次方 / 2的幂次方表示 (注:上次的太水,再发一次好的) 题目传送门: 信息学奥赛一本通 1208 2的幂次方表示 洛谷 P1010 幂次方 题目描述 任何一个正整数都可以用22的幂次方表示。例如: 137=2 7 + 2 3 +2 0 同时约定方次用括号来表示,即a b 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步: 7= 2 2 +2+2 0 (2 1 用2表示),并且 3=2+2 0 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=2 10 +2 8 +2 5 +2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输入格式 一个正整数n(n≤20000)。 输出格式 一行,符合约定的n的0,2表示(在表示中不能有空格)。 输入样例: 1315 输出样例: 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 思路: 看到这道题,我一(hao)眼(jiu)就(cai)看出来用二进制,而且是一道递归的题 首先137变成二进制就是10001001,然后第n位上数值为一,我们就给加上一个2n 1 0 0 0 1 0 0 1 7 6 5 4 3 2 1 0 如上