洛谷P1161开灯

洛谷P1161开灯

在这里插入图片描述
在这里插入图片描述
这道题有一个坑就是小数点后面要有6位小数,而小数点前面不确定
通过这道题我才发现原来double存整数的范围要比float大,以前一直以为他们就是后面小数位数的区别
下面为我的代码

#include <stdio.h>

int n;
double a;
double t;
int g;
int open_or_close[2000000] = { 0 };
int main()
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%lf", &a);
		scanf("%lf", &t);
		for (int k = 1; k <= t; k++)
		{
			double m = (double)k;
			g = m * a;
			open_or_close[g] = (open_or_close[g] + 1) % 2;
		}
	}
	//小数相乘后取整数的部分
	//float强制转换为int就能实现小数部分的截断
	for (int u = 0; u < 2000000; u++)
	{
		if (open_or_close[u] == 1)
		{
			printf("%d", u);
			break;
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值