7-1 然后是几点
有时候人们用四位数字表示一个时间,比如 1106
表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530
;0 点 30 分表示为 030
。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。
输入格式:
输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530
;0 点 30 分表示为 030
。流逝的分钟数可能超过 60,也可能是负数。
输出格式:
输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例:
1120 110
输出样例:
1310
#include <iostream>
int main()
{
int a,b,fz,h,m;
scanf("%d%d",&a,&b);
fz=(a/100)*60+(a%100)+b;
h=fz/60;
m=fz%60;
printf("%d%02d",h,m);
return 0;
}
7-4 逢7击掌
一群人围坐成一圈玩报数的游戏。游戏规则是:
从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。
可是这些人都太聪明了,竟然没人犯错!请问同样聪明的你,当报数到 n 时,总击掌次数 c 是多少?
输入格式
n
输出格式
c
输入样例
21
输出样例
4
#include <stdio.h>
int main()
{
int n, c = 0, cnt;
//n是待输入数据,c是后几个数的计数器,cnt计算有多少个70个为一组的组数
scanf("%d", &n)
cnt = n / 70; //计算有多少个70个为一组的组数
n %= 70; //将n变为最后剩余不满70个数的一组
for (int i = 1; i <= n; i++) {
if ( i%7 == 0 || i%10 == 7)
c++;
}
c = c + cnt * 16;
printf("%d\n",c);
return 0;
}
7-5 数油桶(简)
工人师傅将油桶码成如下图所示的梯形,数了数底层的油桶数和层数,就知道有多少油桶了。你知道他是怎么算的吗?
输入格式
底层油桶数和层数
输出格式
油桶的数量
输入样例
7 4
输出样例
22
#include<stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
int d = (b*(a+(a-(b-1))))/2;
printf("%d", d);
return 0;
}
7-6 聪明的高斯(简)
著名德国数学家高斯(Gauss)上小学时,老师让大家计算:
1+2+3+4+⋯+100= ?
当大家都还在埋头做加法时,高斯却最先算出了答案。你知道他是怎么算的吗?
请编写程序,输入正整数 n,计算 s=1+2+3+4+⋯+n,输出 s 的值。
输入格式
n
输出格式
s
输入样例
100
输出样例
5050
int main()
{
int n,s;
scanf("%d",&n);
s=n*(n+1)/2;
printf("%d",s);
return 0;
}
7-7 快速求和
请编写程序,输入整数 n,快速计算:
输入格式
n
输出格式
s
要求:输出 5 位小数,末位四舍五入。
输入样例1
4
输出样例1
0.80000
输入样例2
300
输出样例2
0.99668
#include<stdio.h>
int main()
{
float n,s;
scanf("%f",&n);
s=n/(n+1);
printf("%.5f",s);
return 0;
}
7-9 买复印纸
某办公室到年底准备将剩余的办公经费全部用于购买复印纸。请编写程序,输入办公经费的余额和每包复印纸的单价,计算并输出最多可购买多少包复印纸。
输入格式
办公经费的余额和每包复印纸的单价
输出格式
可购复印纸的最大数量
输入样例1
611.2 38.2
输出样例1
16
输入样例2
1369.2 23.4
输出样例2
58
#include<stdio.h>
int main()
{
double a,b;
scanf("%lf%lf",&a,&b);
int c;
c=a/b;
printf("%d",c);
return 0;
}
7-12 打妖怪
话说孙大圣保唐僧西天取经,路上遇到一妖怪。妖怪共有 v 滴血,大圣每打一棒就能使妖怪失去 h 滴血,妖怪一旦没血就会立即死去。大圣打了 n 棒将妖怪打死。
请编写程序,输入 v 和 h,输出 n。
输入格式
v 和 h
输出格式
n
注:题目保证 a、b 和 n 的值都在 int 类型的表示范围内。
输入样例
2510 1000
输出样例
3
#include<stdio.h>
int main()
{
int v,h,n;
scanf("%d %d",&v,&h);
n=v/h;
if(v%h==0)
printf("%d",n);
else
printf("%d",n+1);
}
7-19 装酒
已知酒瓶容量为 b 升,现有 w 升酒,需要 n 只瓶子才能盛下全部这些酒。请编写程序,输入 p 和 t,计算并输出 n。
输入格式
b 和 w
输出格式
n
样例输入1
9.45 85.05
样例输出1
9
样例输入2
0.85 146.6
样例输出2
173
#include<stdio.h>
int main()
{
double b,w;
scanf("%lf %lf",&b,&w);
int n;
n=ceil(w/b);
printf("%d",n);
return 0;
}
7-21 三角形面积
请编写程序,输入三角形的底 b 和高 h,计算并输出三角形的面积 a。
输入格式
b 和 h
输出格式
a
输入样例
19.77 48.36
输出样例
478.04
要求:输出 2 位小数(末位四舍五入)。
#include<stdio.h>
int main()
{
double a,b,h;
scanf("%lf %lf",&b,&h);
a=b*h*0.5;
printf("%.2f",a);
return 0;
}
7-22 求序列平方和
请编写程序,输入正整数 n,计算平方和 s=12+22+32+⋯+n2。
输入格式
整数 n
注:n 在 int 类型范围内,格式限定符采用 %d。
输出格式
实数 s
注:s 在 double 类型范围内,格式限定符采用 %.15g。
输入样例
100
输出样例
338350
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
double s=0.0;
int i =1;
for(i=1;i<=n;i++){
s=s+(double)i*i;
}
printf("%.15g",s);
return 0;
}