抱歉!!!本来要在几天前发的,因为身体原因,没给大家回复!!!
所以今天的给大家更多地“餐”,所谓的加餐!!!
废话不多说,上菜!!!
先说一下普及组和提高组的区别吧!!!
Pascal语言可以报普及也可以报提高组的. 初赛没过就准备初赛呗. 其实, 不知道你水平如何. 所以不知道怎么说, 你打算在复赛中拿分呢, 还是初赛过了就OK了? 你想初赛过的话, 注意那些程序题吧. 基础题很简单的, 跟会考差不多... 程序题也不难, 细心些算就是了. 初赛只是一些计算机语言常识和计算题编程填空题. 进了复赛之后, 上机编程, 3 小时, 总共四道题, 编程, 每道题有10个数据, 每个数据都处理得对的话得10分, 总共400分. 这10个数据的难度是有区别的, 比如要计算阶乘. 要计算5!, 10!, 100!, 1000! 如果你处理不了解100!或1000! 可以只计算处理10! 或5!, 其它更难的数据就让它出错吧, 再实在连5!也编不出来, 你就先用笔算算出结果到时只管显示, 也能得分. 只要算对了一个数据, 你就得到一个数据的10分了. 还有最重要的, 题目数据读入和结果文件输出都需要用到文件操作, 先把文件操作练熟了, 要不到时你连题目都读不出来. 普及组和提高组主要是难度不一样. 详可见www.noi.com!!!
我手里没有普及组的题(我靠提高组),所以这些题是“蒜客”的题库中来的!!!
1.成绩
题目描述
查看题目信息
牛牛最近学习了C++入门课程,这门课程的总成绩计算方法是:
总成绩 = 作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%
牛牛想知道,这门课程自己最终能得到多少分。
输入格式
输入文件只有1行,包含三个非负整数A、B、C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是100分。
输出格式
输出文件只有1行,包含一个整数,即牛牛这门课程的总成绩,满分也是100分。
样例输入
100 100 80
样例输出
90
样例输入
60 90 80
样例输出
79
问题提示
【输入输出样例1说明】
牛牛的作业成绩是 100 分,小测成绩是 100 分,期末考试成绩是 80 分,总成绩是100 × 20%+100 × 30%+80 × 50% = 20+30+40 = 90 。
【输入输出样例2说明】
牛牛的作业成绩是 60 分,小测成绩是 90 分,期末考试成绩是 80 分,总成绩是 60 × 20%+90 × 30%+80 × 50% = 12+27+40 = 79 。
【数据说明】
对于 30% 的数据,A = B = 0 。
对于另外 30% 的数据,A = B = 100 。
对于 100% 的数据,0 ≤ A、B、C ≤ 100 ,且 A、B、C 都是 10 的整数倍。
这题比较的“水”,网上的答案,写的真是太**的666了,搞得就像是noi题一样!!!
实际上代码不难:
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main() {
scanf("%d%d%d",&a,&b,&c);
int sum=a/10*2+b/10*3+c/10*5;
printf("%d\n",sum);
return 0;
}
这很难么???(本人看到有283行代码解决的,简直是吃饱了撑的)
数字反转
题目描述
查看题目信息
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
输入共1行,一个整数N。
输出格式
输出共1行,一个整数,表示反转后的新数。
样例输入
123
样例输出
321
样例输入
-380
样例输出
-83
问题提示
【数据范围】-1,000,000,000 ≤ N ≤ 1,000,000,000。
网上的答案真的是五花八门,尤其是我们班肖特的代码,考虑高精度!!!
#include <iostream>
using namespace std;
int main()
{
int n, reverse=0, rem;
cin>>n;
while(n!=0)
{
rem=n%10;
reverse=reverse*10+rem;
n/=10;
}
cout<<reverse<<endl;
return 0;
}
级数求和
题目描述
查看题目信息
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。现给出一个整数K,要求计算出一个最小的n;使得Sn>K。
输入格式
只有一个整数 k(1<=k<=15).
输出格式
只有一个整数n.
样例输入
2
样例输出
4
问题提示
# include<stdio.h>
int main()
{
int k,i;
double Sn=0;
scanf("%d",&k);
for(i=1; ;i++)
{
Sn=Sn+1.0/i;
if(Sn>k)
{
break;
}
}
printf("%d",i);
return 0;
}
数字统计
题目描述
查看题目信息
请统计某个给定范围[L,R]的所有整数中,数字2出现的次数。
比如给定范围[2,22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。
输入格式
输入共1行,为两个正整数L和R,之间用一个空格隔开。
输出格式
输出共1行,表示数字2出现的次数。
样例输入
2 22
样例输出
6
样例输入
2 100
样例输出
20
问题提示
【数据范围】1 ≤ L ≤ R ≤ 10000
这道题只能得95分,不知是不是因为时间限制超了!!!
#include<cstdio>
int main()
{
int l,r,i,k,ans=0;
scanf("%d%d",&l,&r);
for(i=l;i<=r;i++)
for(k=i;k>0;k/=10)
if(k%10==2)ans++;
printf("%d\n",ans);
return 0;
}
简简单单的一套模拟题,两道水的不能在水的,和两道不同的dp,大家如果喜欢的话,给个3连???
如果投票时想要跟多复习资料的超过150个,我就厚脸皮的像我朋友胡修朗哪里“借鉴”一下了!!!
过几天,我好要发一个noi的,大家可以886了!!!