教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

山东科技大学OJ集锦(2)

来源:网络收集 时间:2026-10-05
导读: d=fabs(b); printf(\ return 0; } (1-9) Problem I: 简单的打折计算 Time Limit: 1 Sec Memory Limit: 2 MB Submit: 919 Solved: 435 [Submit][Status][Web Board] Description 商店规定:消费满n元,可以打八八折

d=fabs(b);

printf(\ return 0; } (1-9)

Problem I: 简单的打折计算

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 919 Solved: 435 [Submit][Status][Web Board] Description

商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。 Input

输入只有一行,三个整数m、n和x,且0

输出金额,精确到分。 Sample Input 95 300 4

Sample Output 334.40 HINT

了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。 #include int main() {

int m,x,n,a; float b;

scanf(\ 0

mn)

b=0.88*a; else

b=a;

printf(\ return 0; } (1-10)

Problem J: 判断闰年

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 939 Solved: 443 [Submit][Status][Web Board]

Description

输入一个正整数的年份,判断是否为闰年。 Input

输入只有一行,为一个10000以内的正整数。 Output

输出为一行。

若输入为闰年偶数则输出“Yes”,否则输出“No”。 Sample Input 2010

Sample Output No HINT

了解逻辑运算符和关系运算符。 #include int main() {

int a;

0

if (a%4==0&&a0!=0) printf(\ else if (a@0==0) printf(\ else

printf(\ return 0; } (1-11)

Description

GHacker最近痴迷于一个新上市的解谜游戏,其中一关的过关是破解一个字符串S。经过3天的冥思苦想,GHacker成功的搞明白了这其中的奥秘,把串S中的整数取出来求和,就可以过关了。但是GHacker的数学实在糟糕。他无法在短暂的时间内算出来,只好求助Jackie。Jackie观察到虽然每次出现的数字不同,但是其它的符号并不会变化。于是Jackie编写了一个非常短的程序,帮助GHacker把这一关过了。 Input

输入为串S,只有一行。 Output

串S中用非数字(0~9)分隔开的非负整数之和,不会超出int类型的数据范围。 Sample Input

`13?:[7514],54.487==\Sample Output 447899 HINT

scanf()可以解决这个问题,注意转义字符和格式控制字符。

#include int main() {

int a,b,c,d,e,f,g,h,i,j,k,s;

scanf(\%*c%d%*c%*c%d%*c%*c%*c%*c%d%*c%d%*c\ s=a+b+c+d+e+f+g+h+i+j+k; printf(\ return 0; } (1-12)

Problem L: 水仙花数

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 960 Solved: 534 [Submit][Status][Web Board] Description

如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。 Input

一个整数x,100<=x<=999。 Output

x是水仙花数,则输出“YES”,否则为“NO”。 Sample Input 153

Sample Output YES 答案:

#include int main() {

int a,b,c,d,e; scanf(\ b=a/100;

c=(a-b*100)/10; d=(a-b*100-c*10);

e=b*b*b+c*c*c+d*d*d; if(a==e)

printf(\ else

printf(\ return 0; } (1-13)

Problem M: 求1+2+...+n=?

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 2023 Solved: 413 [Submit][Status][Web Board] Description

给定一个n,求出s = 1+2+3+...+n的值。 Input

输入只有一行,包含一个正整数n(n<=232)。 Output

输出一行,为1+2+...+n的值。 Sample Input 10

Sample Output 55 HINT

n的数据范围大,需注意数据类型的选择和计算次序,以避免数据溢出。 #include int main() {

unsigned long long n; scanf(\ if(n%2==0)

printf(\ else

printf(\ return 0; } (1-14)

Problem N: 2的多少次幂

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 1022 Solved: 470 [Submit][Status][Web Board] Description

从键盘输入一个数x,x是2的整数次幂(x=2y),请编程求出y的值。 Input

一个非负有理数x,x在[0,2256]范围内。 Output

一个整数y。 Sample Input 1

Sample Output 0 HINT

看起来数据很大,但是用double完全可以存储。为什么?请研究下IEEE-754标准的浮点数

存储格式。这里要用到C语言标准库的数学函数。 #include #include int main() {

double x; int y;

scanf(\ y=log2(x); printf(\ return 0; }

第二次作业

(2_1)问题 A: 哪一行比较长

时间限制: 1 Sec 内存限制: 2 MB 提交: 625 解决: 252 [提交][状态][讨论版] 题目描述

读取两行字符串,按每行的长度从长到短输出。 输入

输入为两行,每行不会超过26个字符。 输出

输出为两行,按每行的长度从长到短输出。 样例输入 abcdefghijk

abcdefghijklmnopqrstuvwxyz 样例输出

abcdefghijklmnopqrstuvwxyz abcdefghijk 提示

了解字符串的存储和操作,了解gets()和scanf(\读入字符串的不同之处 #include #include int main() {

char s1[27],s2[27]; int a,b; gets(s1); gets(s2); a=strlen(s1); b=strlen(s2); if (a>=b) {

…… 此处隐藏:1082字,全部文档内容请下载后查看。喜欢就下载吧 ……
山东科技大学OJ集锦(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/612115.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)