![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信息学奥赛一本通c++
主要是本人做过并且测试通过的程序以及思想
是数学系的小孩儿
生命不止,学习不止。
今天的你是可爱的在学习吗?
展开
-
信息学奥赛一本通:1056:点和正方形的关系
1056:点和正方形的关系时间限制: 1000 ms 内存限制: 65536 KB提交数: 29647 通过数: 20111【题目描述】有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。如果点在正方形内,则输出yes,否则输出no。【输入】输入一行,包括两个整数x、y,以一个空格分开,表示坐标(x,y)。【输出】输出一行,如果点在正方形原创 2021-01-18 22:47:46 · 350 阅读 · 2 评论 -
睡一觉醒来发现很简单
19:首字母大写总时间限制: 1000ms 内存限制: 65536kB描述对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括:空格(’ ‘)、制表符(’\t’)、回车符(’\r’)、换行符(’\n’)。输入输入一行:待处理的字符串(长度小于80)。输出输出一行:转换后的字符串。样例输入if so, you already have a google account. you can sign in on th原创 2021-01-07 13:12:29 · 97 阅读 · 0 评论 -
数组法:求斐波那契数列
#include<iostream>using namespace std;int main(){long long a[1000000];int i;int n;cin >> n;a[1]=1;a[2]=2;for(i=3;i<=n;i++)a[i]=a[i-1]+a[i-2];for(i=1;i<n;i++)cout <<a[i]<< endl;return 0;}原创 2021-01-06 21:15:43 · 894 阅读 · 3 评论 -
迭代法:斐波那契序列
#include<iostream>using namespace std;int main(){int k;cin >> k;int k1=1,k2=1,k3=1;for(int i=3;i<=k;i++){k3=k1+k2;k1=k2;k2=k3;}cout<<k3<<endl;}原创 2021-01-06 21:06:25 · 136 阅读 · 2 评论 -
求平均年龄
A:求平均年龄查看 提交 统计 提问总时间限制: 1000ms 内存限制: 65536kB描述班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。输入第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。样例输入21817样例输出17.50#include<iostream>原创 2021-01-06 10:46:00 · 323 阅读 · 0 评论 -
统计数字字符个数
B:统计数字字符个数总时间限制: 1000ms内存限制: 65536kB描述输入一行字符,统计出其中数字字符的个数。输入一行字符串,总长度不超过255。输出输出为1行,输出字符串里面数字字符的个数。样例输入Peking University is set up at 1898.样例输出4来源习题(7-1) 医学部 2010 期末试题 樊波#include<iostream>#include<cstdio>char a[256];using namespace std原创 2021-01-06 00:04:43 · 896 阅读 · 0 评论 -
白细胞计数
AA:白细胞计数总时间限制: 1000ms 内存限制: 65536kB描述医院采样了某临床病例治疗期间的白细胞数量样本n份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这n份样本中去除一个数值最大的 样本和一个数值最小的样本,然后将剩余n-2个有效样本的平均值作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有 效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。现在请你编写程序,根据提供的n个样本值,计算出该病例的平均白细胞数量和对原创 2021-01-05 23:57:24 · 313 阅读 · 0 评论 -
A:与指定数字相同的数的个数
A:与指定数字相同的数的个数查看 提交 统计 提问总时间限制: 1000ms 内存限制: 65536kB描述输出一个整数序列中与指定数字相同的数的个数。输入输入包含三行:第一行为N,表示整数序列的长度(N <= 100);第二行为N个整数,整数之间以一个空格分开;第三行包含一个整数,为指定的整数m。输出输出为N个数中与m相同的数的个数。样例输入32 3 22样例输出2#include<iostream>using namespace std;int原创 2021-01-05 17:56:58 · 209 阅读 · 0 评论 -
学到了赋值
#include<iostream>using namespace std;int main(){int i,n,a[1001];int min=1000,max=0;cin>>n;//序列的个数nfor(int i=1;i<=n;i++){cin >> a[i];//输入序列if(a[i]>max){max=a[i];}if(a[i]<min){min=a[i];}}cout <<max-min<<原创 2021-01-05 16:21:42 · 74 阅读 · 0 评论 -
最高的分数
1062:最高的分数时间限制: 1000 ms内存限制: 65536 KB提交数: 44885 通过数: 33047【题目描述】孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?【输入】 输入两行,第一行为整数n(1 ≤ n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。【输出】 输出一个整数,即最高原创 2021-01-04 21:16:10 · 1579 阅读 · 0 评论 -
懂了懂了,运行几次,问问就懂了
#include<iostream> #include<map> using namespace std; int main() { map<char,int> mp; mp['a']=20;mp['b']=30;mp['c']=40;printf("%d ",mp.size());map<char,int>::iterator it=mp.find('c'); printf("%c %d\n",it->first,it->s原创 2021-01-04 11:04:50 · 71 阅读 · 0 评论 -
map的常用函数find(),size() printf(“%d“,mp.size())
#include<iostream>#include<map>using namespace std;int main(){map<char,int> mp;mp['a']=20;mp['b']=30;mp['c']=40;printf("%d",mp.size());map<char,int>::iterator it=mp.find('b');printf("%c %d\n",it->first,it->second);原创 2021-01-04 10:36:40 · 332 阅读 · 0 评论 -
与其暂时很生,不知其如何迭代
#include<iostream>#include<map>using namespace std;int main(){char m,r,a;map<char,int> mp;mp['m']=20;mp['r']=30;mp['a']=40;for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++)printf("%c %d\n",it->first,it->se原创 2021-01-04 10:23:32 · 57 阅读 · 0 评论 -
一个正整数各位数字之和(数的分解过程)
#include<cstdio>using namespace std;int main(){int n,s=0;scanf("%d",&n);do{s+=n%10;n/=10;}while(n!=0);printf("%d\n",s);return 0;}原创 2021-01-02 16:08:34 · 466 阅读 · 0 评论 -
判断输入的数中正数的个数
#include<iostream>using namespace std;int main(){int x,s=0;cin >> x;while(x!=0){if(x>0)s++;cin >> x;}cout << s << endl;return 0;}原创 2021-01-02 16:02:39 · 176 阅读 · 0 评论 -
三位数,各个位数相加和
#include<iostream>#include<cstdio>using namespace std;int main(){int n,a,b,c;cin >>n;a=n%10;b=n/10%10;c=n/100;cout <<a+b+c<< endl;return 0;}原创 2021-01-02 14:55:57 · 1027 阅读 · 0 评论 -
求圆的面积,球儿的体积
#include<iostream>using namespace std;#define pi 3.14159 // const double pi=3.14159int main(){double square=0,volume=0,radius=0;cin >> radius;square=3.14159*radius*radius;volume=4*3.14159*radius*radius*radius/3;cout <<"square="&l原创 2021-01-02 09:53:44 · 134 阅读 · 0 评论 -
逐步替代
#include<iostream>using namespace std;int a,b,c,ans=100;int main(){a=1;b=2;c=5;a=a+b;b=a+b+c;ans=ans+a+b+c;cout << ans << endl;return 0;}原创 2021-01-02 09:44:37 · 151 阅读 · 0 评论 -
变量含义,临近变化
#include<iostream>using namespace std;int main(){int a;a=3;cout<<a<<endl;a=10;cout <<a<< endl;a=a*5;cout << a << endl;return 0;}原创 2021-01-02 09:38:44 · 112 阅读 · 0 评论 -
比较大小
#include<iostream>using namespace std;int main(){int a,b,max;cin >> a>>b;if(a>b){max=a;}else{max=b;}cout << max<< endl;return 0;}原创 2021-01-02 09:26:58 · 83 阅读 · 0 评论 -
全变成大写
#include <iostream>using namespace std;int main(){ char a; while(cin>>a) {if(a>='a'&&a<='z') a=a-32; cout<<a;} return 0;}原创 2021-01-02 09:20:00 · 87 阅读 · 0 评论 -
struct 年龄排序
#include<iostream>#include<cstdio>#include<cstring>#include<iomanip>using namespace std;struct stu{string name;string sex;int year,month;};const int MAXN=999;stu a[MAXN];int main(){int n;cin >> n;for(int i=1;i&原创 2020-12-31 17:57:10 · 342 阅读 · 0 评论 -
结构体
#include<iostream>#include<iomanip>#include<cstdio>#include<string>using namespace std;struct student{string name;char sex;int age;double weight;};int main(){student stu;cin >> stu.name>>stu.sex>>stu原创 2020-12-31 17:00:23 · 73 阅读 · 0 评论 -
最小数乘2
#include<iostream>using namespace std;int main(){int a,b;int *p;//定义一个指向一个整数的指针变量pcin >>a>>b;if(a<b)p=&a;elsep=&b;cout << *p*2 << endl;return 0;}原创 2020-12-31 16:14:19 · 70 阅读 · 0 评论 -
函数成功,全变
#include<iostream>using namespace std;void swap(int &x,int& y){int temp;temp=x;x=y;y=temp;cout <<x<< " " <<y<< endl;}int main(){int a=10,b=50;swap(a,b);cout <<a<< " " <<b<< endl;原创 2020-12-31 15:02:12 · 62 阅读 · 0 评论 -
用法
#include<cstdio>using namespace std;int main(){char a='A';putchar(a);//输出一个Aputchar('\\');//输出'\'putchar('\n');//输出回车换行char c;c=getchar();putchar(c+1);//输出一个字符,输出它在ascii码表中的后一个字符return 0;}...原创 2020-12-31 14:01:06 · 100 阅读 · 0 评论 -
定义数组,gets,puts的使用
#include<cstdio>using namespace std;char s[99];//定义一个长度为99的字符数组sint main(){gets(s);puts(s);return 0;}原创 2020-12-31 13:51:45 · 578 阅读 · 0 评论 -
字符大小转换思想
#include<iostream>using namespace std;int main(){char i,j;i='c';j='d';i=i-32;j=j-32;cout <<i<< " " <<j<< endl;return 0;}原创 2020-12-31 13:47:25 · 118 阅读 · 0 评论 -
1061:求整数的和与均值(信息学奥赛一本通)
1061:求整数的和与均值时间限制: 1000 ms 内存限制: 65536 KB提交数: 62786 通过数: 30579【题目描述】读入n(1≤n≤10000)个整数,求它们的和与均值。【输入】输入第一行是一个整数n,表示有n个整数。第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。【输出】输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。【输入样例】4344222343222【输出样例】1131原创 2020-12-30 17:55:58 · 675 阅读 · 0 评论 -
测生死比率
#include<iostream>#include<cstdio>using namespace std;int main(){int l,d;//live diedouble r;//ratescanf("%d %d",&l,&d);r=(double)l/d;printf("%.3lf",r);return 0;}原创 2020-12-30 17:04:24 · 89 阅读 · 0 评论 -
指针加乘
#include<iostream>#include<cstdio>using namespace std;int main(){int a,b,s,t,*pa,*pb;pa=&a;pb=&b;cin >>a>>b;s=*pa+*pb;t=*pa* *pb;printf("a=%d,b=%d\n",*pa,*pb);printf("s=%d,t=%d\n",s,t);return 0;}原创 2020-12-29 23:09:01 · 107 阅读 · 0 评论 -
计算阶乘
#include<cstdio>using namespace std;int main(){long long s=1;int n;scanf("%d",&n);for(int i=1;i<=n;i++)s*=i;printf("%lld\n",s);return 0;}原创 2020-12-27 14:17:00 · 87 阅读 · 0 评论 -
第二种方法求
#include<iostream>using namespace std;int main(){int i,j,sum1=0,sum2=0;for(i=2,j=1;i<=100&&j<=99;i+=2,j+=2){sum1+=i;sum2+=j;}cout <<sum1<< " "<<sum2 << endl;return 0;}原创 2020-12-27 14:10:53 · 84 阅读 · 0 评论 -
奇偶数分别求和
#include<iostream>using namespace std;int main(){int i,sum1=0,sum2=0;//分别存放偶数和,奇数和,均初始化为0for(i=1;i<=100;i++)if(i%2==0)sum1+=i;elsesum2+=i;cout <<sum1<< " "<<sum2 << endl;return 0;}...原创 2020-12-27 14:05:12 · 618 阅读 · 0 评论 -
2020-12-27
1上一个求偶数的方法是for(int i=1;i<=100;i++)if(i%2==0)这种思想属于穷举,穷举法保证在求解的过程中,所有可能解都会判断到,不会丢解。但是,缺点是有的时候效率不高。2相邻偶数之间的差值是2,因此可以先声明变量的初值为2,增量为2的for循环,这样可以使得循环的次数减少为50次看看呗#include<iostream>using namespace std;int main(){for(int i=2;i<=100;i+=2)//fo原创 2020-12-27 13:42:55 · 92 阅读 · 0 评论 -
输出1到100之间的偶数,输出形式不同,记忆一下
#include<iostream>using namespace std;int main (){for(int i=1;i<=100;i++)//对于i取1至100之间的每一个整数,都重复操作if(i%2==0){cout << i<<" " ;}return 0;}原创 2020-12-27 13:29:08 · 1684 阅读 · 0 评论 -
输出1~100之间所有的偶数
#include<iostream>using namespace std;int main (){for(int i=1;i<=100;i++)//对于i取1至100之间的每一个整数,都重复操作if(i%2==0){cout << i<<" " << endl;}return 0;}原创 2020-12-27 13:24:58 · 8111 阅读 · 4 评论 -
利用for循环,计算1+2+3+……+100。等差数列求和
#include<iostream>using namespace std;int main (){int sum=0;for(int i=1;i<=100;++i)//i初始值为1,终值为100,每次增量为1 sum+=i; cout << sum << endl; return 0;}原创 2020-12-27 13:18:48 · 8004 阅读 · 0 评论 -
判断闰年
:判断闰年查看 提交 统计 提问总时间限制: 1000ms 内存限制: 65536kB描述判断某年是否是闰年。输入输入只有一行,包含一个整数a(0 < a < 3000)输出一行,如果公元a年是闰年输出Y,否则输出N样例输入2006样例输出N提示公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。#include<iostream>原创 2020-12-21 15:22:58 · 140 阅读 · 0 评论 -
1053最大数输出
1053:最大数输出时间限制: 1000 ms 内存限制: 65536 KB提交数: 38832 通过数: 26862【题目描述】输入三个整数,数与数之间以一个空格分开。 输出一个整数,即最大的整数。【输入】输入为一行,包含三个整数,数与数之间以一个空格分开。【输出】输出一行,包含一个整数,即最大的整数。【输入样例】10 20 56【输出样例】56#include<iostream>#include<iomanip>#includ原创 2020-12-21 13:54:08 · 348 阅读 · 1 评论