实验2-2-9 计算火车运行时间 (15分)

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

输入格式:
输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。

输出格式:
在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。

输入样例:
1201 1530
输出样例:
03:29

#include<stdio.h>
int main()
{
   	int start,end,hour,min;
   	scanf("%d %d",&start,&end);
   	int hour_s=start/100,min_s=start%100;
   	int hour_e=end/100,min_e=end%100;
   	hour=hour_e-hour_s;
   	min=min_e-min_s;
   	if(min<0){
   		min+=60;
   		hour-=1;
	}
	printf("%02d:%02d",hour,min);
   	return 0;
}

注解:
1.
考虑到时和分之间是60进制,所以讲时和分要分开进行独立的运算,故用hour 和Min分别记录时和分,若min<0向小时借一位,然后min加60,hour减1
2.
最后的输出为hh:mm,则时和分均必须输出为两位数字,不够从前向后补0,则用输出控制字符 %02d

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 水仙花数又称为阿姆斯特朗数,是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如,1^3 + 5^3 + 3^3 = 153,因此 153 就是一个水仙花数。 下面是一个求解水仙花数的 Python 代码示例: ```python for num in range(100, 1000): # 将数字转换成字符串,再转换成列表 digits = list(str(num)) # 计算每个数字的立方和 sum_of_cubes = sum(int(digit) ** 3 for digit in digits) # 判断是否为水仙花数,并输出结果 if sum_of_cubes == num: print(num) ``` 代码输出结果为: ``` 153 370 371 407 ``` 以上代码中,首先使用 for 循环遍历 100 到 999 之间的每个整数,然后将每个数转换成字符串,再将字符串转换成数字列表。接着使用列表解析式计算每个数字的立方和,最后判断是否为水仙花数,如果是就输出结果。 ### 回答2: 实验4-2-9是指求解水仙花数的实验。 水仙花数,也被称为“阿姆斯特朗数”,是指一个n位数(n≥3),它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1³+5³+3³=153。 要解决实验4-2-9,我们需要编写程序来查找并打印出所有的水仙花数。 一个简单且有效的方法是使用循环和条件语句来遍历所有的n位数,然后判断每个数是否满足水仙花数的条件。 步骤如下: 1. 输入一个正整数n,用于指定要查找的水仙花数的位数。 2. 使用一个循环语句来生成从10^(n-1)到10^n-1之间的所有数。 3. 对于每个生成的数,使用另一个循环语句来计算每个位的立方和,并将结果与原数进行比较。 4. 如果计算结果等于原数,则打印出该数,将其作为一个水仙花数。 以下是一个基本的伪代码示例: ``` 输入n 上限 <- 10^n-1 下限 <- 10^(n-1) 对于每个数字i从下限到上限 将i转换为字符串str_i 数字的立方和 <- 0 对于每个字符c在str_i中 数字的立方和 <- 数字的立方和 + (c转换为整数)^3 如果数字的立方和 等于 i 打印 i ``` 通过以上步骤,程序能够查找并打印出给定位数的所有水仙花数。 ### 回答3: 实验4-2-9是关于水仙花数的实验。水仙花数是指一个三位数,其各个位上的数字的立方和等于该数本身。例如,153是一个水仙花数,因为1³+5³+3³=153。 要解决这个问题,首先需要编写一个程序,可以遍历所有的三位数。然后,对每个三位数进行计算,找出满足条件的水仙花数。 我们可以使用嵌套的循环来遍历所有的三位数。外层循环控制百位数的变化,中间的循环控制十位数的变化,内层循环控制个位数的变化。在每次循环中,计算当前三位数的各个位上数字的立方和,与该数进行比较,如果相等则输出该数。 以下是示例代码: ```python for i in range(1, 10): for j in range(0, 10): for k in range(0, 10): num = i * 100 + j * 10 + k if i**3 + j**3 + k**3 == num: print(num) ``` 这段代码会输出所有的水仙花数。执行代码后,可以看到153、370、371、407这四个数,它们都是水仙花数。 通过这个实验,我们可以学习到如何使用循环和条件语句来解决问题。水仙花数是一个经典的数学问题,通过实验的方式,我们能够更好地理解和掌握这个概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值