安徽大学计算机机试OJ练习
更新时间:2023-11-25 22:19:01 阅读量: 教育文库 文档下载
- 安徽大学计算机炸了推荐度:
- 相关推荐
一、编程题
值日&&高精度加法
标签: 枚举
2017年11月26日 17:32:30 133人阅读 评论(0) 收藏 举报
分类: 编程题(72)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhagoodwell/article/details/78638380
目录(?)[+]
C. 值日
运行时间<1000 ms 单次测试运行时间限制: 1000 ms 内存限制: 64 MB
总提交: 2次 通过: 1次
题目描述
今天轮到pw值日了。值日可是一个体力活。Pw首先擦黑板,pw定睛一看黑板,嘿呀,怎么上边有一堆奇奇怪怪的数字。再一看,原来是今天留的一道数学题。赶巧数学老师进来了,pw急忙上前去请教。
老师说:“这不是AHU新生赛“值日的后续”那题吗?”,老师边讲边翻开课本,“给出一个正整数x,求得x和其各位9数字之和是多少?挺简单的吧?你是不是……”
然而今天题目没那么简单。现在已知一个数字和其各位数字之和为n,请求出有几个数字x,满足题目叙述的要求。如果存在这样的数字,请先输出这样数字的个数,再按照从小到大的顺序依次输出这些数字,否则输出0。
程序输入说明
一个数字n(1<=n<=10^9) 用EOF判断读入是否结束
程序输出说明
若存在满足题意的数字,先输出数字的个数k。 接下来k行,每行一个数字的值。 若不存在,直接输出0。 程序输入样例 可见格式 带空格和换行符的格式 带空格和换行符的格式说明 21 20 程序输出样例 Original Transformed 带空格和换行符的格式说明 1 15 0 提示 对于第一组数据,有一个数字15满足15+5+1=21。 对于第二组数据,找不到满足题意的的数字,故输出0。 个人理解 这个只需要估算一下 10^9如果每一位都是9 则最多就 81 所以只要在n-100のn之间枚举即可 [objc] view plain copy print? 1. # include
3. int AS(int a); 4. int A[N]; 5. int i,k; 6. int main() 7. {
8. int i,n;
9. while(scanf(\10. {
11. for(i=n-100,k=0;i 17. return 0; 18. } 19. int AS(int a){ 20. int sum=a; 21. while(a) 22. { 23. sum+=a; 24. a/=10; 25. } 26. return sum; 27. } 高精度加法 运行时限: 1000 ms 单次运行时限: 1000 ms 内存限制: 64 MB 总提交: 78次 通过: 27次 题目描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。最后将C输出即可。 程序输入说明 输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。 程序输出说明 输出一行,表示a + b的值。 程序输入样例 可见格式 带空格和换行符的格式 带空格和换行符的格式说明 20100122201001221234567890 2010012220100122 程序输出样例 Original Transformed 带空格和换行符的格式说明 20100122203011233454668012 提示 无 题目来源 基础训练 也很简单 [objc] view plain copy print? 1. # include 6. int a=-1,b=-1,c=-1,i,j; 7. //freopen(\8. gets(A); 9. while(A[++a])A[a]-=48; 10. gets(B); 11. while(B[++b])B[b]-=48; 12. i=a+1;j=b+1; 13. do{ 14. i--;j--; 15. if(i&&j==-1)C[++c]+=A[i]; 16. else if(i==-1&&j)C[++c]+=B[j]; 17. else C[++c]+=A[i]+B[j]; 18. if(C[c]>9) 19. { 20. C[c+1]+=C[c]/10; 21. C[c]%=10; 22. } 23. if(i==-2)i=-1; 24. if(j==-2)j=-1; 25. }while(i>-1||j>-1); 26. while(!C[c])c--; 27. while(c)printf(\28. printf(\29. return 0; 30. } 二、编程题 AHU ACM实验室11/13新生兴趣赛Round2 AOJ 180 E. A+B Problem (0 + EOL) 原创 2016年11月17日 08:53:42 ? ? ? ? 标签: acm / AOJ 371 被这么一个输出搞到PE了八次我也是被自己的智商惊讶到了… TAT 所以以后要记住这种输出 每两个输出中间隔一个空行 最后一个输出只有一个换行符。 #include int a,b; scanf(\%d %d\,&a,&b); printf(\%d\\n\,a+b); while(scanf(\%d %d\,&a,&b)!=EOF) { if(a==0&&b==0) break; printf(\%d\\n\,a+b); } return 0; } 三、编程题 AOJ 1302.值日 today 2017-11-27 14:40:30 visibility 58 点击显/隐题目 题解 对于一个数abcd,有a*1000+b*100+c*10+d 按照计算规则,有 a+b+c+d+a*1000+b*100+c*10+d 而a、b、c、d都是一位数,也即即使是最大的9位数99999999,其计算后也仅仅有999999999+9*9 因此对于每一组数据,直接枚举比他大100和比他小100的数,统计一下即可 代码 点击显/隐代码 #include #include const int maxn=10005; vector int d(int t){ int ans = t; while(t){ ans += t; t/=10; } return ans; } void getans(int t){ v.clear(); for(int i=max(0,t-1000);i<=t+1000;++i){ if(d(i)==t) v.push_back(i); } int sz = v.size(); printf(\,sz); for(int i=0;i int main(){ //freopen(\ //memset(vis,0,sizeof(vis)); int n; while(scanf(\,&n)!=EOF){ getans(n); } return 0; } 模拟机试题 A. A+B问题 运行时间<1000 ms 单次测试运行时间限制: 1000 ms 内存限制:64 MB 总提交: 351次 通过: 236次 题目描述 本系统提交的所有代码的主函数必须以int作为返回类型,并且最后要有return 0;语句。并且不能输出和题目要求输出无关的附加信息! 计算a+b的和。 在本系统提交代码时,提交的格式如下: #include int a,b; scanf(\不符合要求的写法:scanf(\请输入a,b\; scanf(\这些写法或者输出多余信息,或者输入格式不符合题目要求 printf(\不符要求的写法:printf(\结果是:%d\这些写法输出了多余的信息。 return 0; } 因此,请严格按照题目的输入和输出要求进行编程,在本地机器上的IDE调试通过后才可以提交。 程序输入说明 输入一行,两个用空格分隔的整数a,b (0<=a,b<=10) 程序输出说明 输出一行,一个整数,为a+b的和 程序输入样例 可见格式 1 2 带空格和换行符的格式 带空格和换行符的格式说明 程序输出样例 Original 3 Transformed 带空格和换行符的格式说明 提示 本系统提交的所有代码的主函数必须以int作为返回类型,并且最后要有return 0;语句。并且不能输出和题目要求输出无关的附加信息! #include int main() { int a,b; scanf(\ printf(\ return 0; } C. 闰年判断 运行时间<1000 ms 单次测试运行时间限制: 1000 ms 内存限制: 2 MB 总提交: 361次 通过: 174次 题目描述 判断某一年是否是闰年. 在C语言中,求余操作用%,例如3%2的结果是1。选择结构的用法如下: if(条件) { 语句1; } else { 语句2; } 该结构的意思是:如果条件成立,则执行语句1,否则执行语句2。 条件表达式通常为a>b,a>=b, a==b(判断a是否等于b), a!=b(判断a是否不等于b). 程序输入说明 行1:一个表示年份的整数. 程序输出说明 行1:输出Y或者N,Y表示某年是闰年. 程序输入样例 可见格式 2000 带空格和换行符的格式 带空格和换行符的格式说明 程序输出样例 Original Y Transformed 带空格和换行符的格式说明 提示 无 #include int main() { int year; int flag; scanf(\ if(year%4==0) } { if(year0==0) { if(year@0==0) { flag = 1; } else { flag = 0; } } else { flag = 1; } } else { flag = 0; } if(flag) { printf(\} else { printf(\} return 0; D. 求分数和 运行时间<1000 ms 单次测试运行时间限制: 1000 ms 内存限制: 10 MB 总提交: 488次 通过: 152次 题目描述 求1-1/2+1/3+...-1/N. 求解该题时,需要先从键盘读入一个整数N,然后执行算法。本题用到的知识点如下: 1.在C语言中,实数通常用double类型表示, 例如double a; 则定义了一个变量a,里面可以存放一个实数。 2.在输出实数时,采用printf\形式输出,其中.5表示输出结果保留小数点后5位,lf是double类型的输出控制字符。 3.在C语言中,两个整数相除的结果是商,例如3/2=1;若想得到1.5这样的准确结果,可以把除数或者被除数写成带小数点的形式,例如3/2.0=1.5或者3.0/2=1.5; 4.在C语言中,直到型循环结构的语法格式如下: do { 语句1; 语句2; ...; //其他语句。 }while(条件); 其意思是:执行花括号里的语句序列直到while小括号里的条件不成立为止。 程序输入说明 行1:一个整数N 程序输出说明 行1:结果(一个浮点数,精确到小数点后5位) 程序输入样例 可见格式 2 带空格和换行符的格式 带空格和换行符的格式说明 程序输出样例 Original 0.5 Transformed 带空格和换行符的格式说明 提示 无 #include int main() {
正在阅读:
安徽大学计算机机试OJ练习11-25
浅析果树栽培和科学管理技术01-08
WANDFULH液压比例阀在多功能液压试验台设计中的应用07-05
2014年中国建设银行总行社会招聘公告04-22
读书之乐作文500字07-12
九年级化学第二单元空气教案09-21
中国未来国运如何 深度分析 - 图文07-05
嗨,这就是我作文600字02-05
石油、化工离心泵常用标准的分析与比较05-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 安徽大学
- 练习
- 计算机
- 宁波大学科学技术学院2012-1013学年第二学期大学英语2期末试题
- 解体调车作业计划 - 图文
- 小学三年级数学上册应用题练习题
- 小直径多参数环空测试仪在套管井找漏中的应用
- 论文的开题报告和论文初稿有什么格式区别
- 34-Web应用软件开发
- 科技创意作品的主要内容
- 新员工班组级安全教育考试题
- CMA P1(2015)考前冲刺习题及答案-第五章内部控制
- 实验5 运算放大器的HSPICE仿真
- 《财务会计》第一次作业答案
- 5.2弧度制
- 环境评价复习重点(部分)
- 授权签字人笔试题汇总
- 第九单元 第四讲 生态系统的物质循环、信息传递及稳定性
- 建筑企业经营与管理(本) 作业1
- 2013考研时事政治解析
- 建筑电气专业考试题(A) - secret
- 第七章 煤储层的力学性质及其对压裂效果的影响
- 矿山压力与岩层控制试题答案