C语言刷题------(2)

C语言刷题——————(2)

刷题网站题库 - 蓝桥云课 (lanqiao.cn)

First Question:时间显示

题目描述

小蓝要和朋友合作开发一个时间显示的网站。

在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 19701970 年 11 月 11 日 00:00:0000:00:00 到当前时刻经过的毫秒数。

现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。

给定一个用整数表示的时间,请将这个时间对应的时分秒输出。

输入描述

输入一行包含一个整数,表示时间。

输出描述

输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 00 到 2323,MM 表示分,值为 00 到 5959,SS 表示秒,值为 00 到 5959。时、分、秒 不足两位时补前导 00。

输入输出样例

示例 1

输入

46800999

输出

13:00:00
示例 2

输入

1618708103123

输出

01:08:23

评测用例规模与约定

对于所有评测用例,给定的时间为不超过 10^18 的正整数。


思路:先分别对应化成秒、分、时,再分别算有多少秒、分、时
Demo:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  long long int millisecond;
	scanf("%lld", &millisecond);
	millisecond /= 1000;//先化成秒
	int second = millisecond % 60;//得到有多少秒
	millisecond /= 60;//再化成分钟
	int minute = millisecond % 60;//得到有多少分钟
	millisecond /= 60;//最后化成小时
	int hour = millisecond % 24;//得到有多少小时
	printf("%02d:%02d:%02d", hour, minute, second);
  return 0;
}

Second Question:特别的数求和

题目描述

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 n 中,所有这样的数的和是多少?

输入描述

输入一行包含一个整数 n(1≤n≤10^4)。

输出描述

输出一行,包含一个整数,表示满足条件的数的和。

输入输出样例

示例

输入

40

输出

574

思路:先将末尾为0和2、1、9的数字分开找,每一次找完,就/10,排除末尾数字,再找十位数字,就相当于先从个位开始,依次是十位、百位、千位……

Demo:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  int num = 0;
	int mid = 0;
	scanf("%d", &num);
	int sum = 0;
	for (int i = 1; i <= num; i++)
	{
		mid = i;
		while (mid > 0)
		{
			if (mid % 10 == 0 && mid / 10 != 0)//找是10的倍数的整数
			{
				sum = sum + i;
				break;
			}
			if ((mid % 10 == 2) || (mid % 10 == 1) || (mid % 10 == 9))//用来找数字最后一位为2、1、9的数字
			{
				sum += i;
				break;
			}
			mid = mid / 10;//相当于除去最后一个末尾数字
		}	
	}
	printf("%d\n",sum);
  return 0;
}

在这里插入图片描述
枯木逢春犹再发,人无两度再少年。

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要努力点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值