洛谷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;
}
}
}