printf("%lld", ((1e12 - 1e9) * 3 + (1e9 - 1e6) * 2 + (1e6 - 1e3)));//错误示例,参数为double类型
printf("%lld", long long((1e12 - 1e9) * 3 + (1e9 - 1e6) * 2 + (1e6 - 1e3)));//正确,记得转换
有些竞赛不支持这样写,可以这样
精度问题不可小觑,原以为只小数之类的不准,没想到可以这样差距大
printf("%lld", ((1e12 - 1e9) * 3 + (1e9 - 1e6) * 2 + (1e6 - 1e3)));//错误示例,参数为double类型
printf("%lld", long long((1e12 - 1e9) * 3 + (1e9 - 1e6) * 2 + (1e6 - 1e3)));//正确,记得转换
有些竞赛不支持这样写,可以这样
精度问题不可小觑,原以为只小数之类的不准,没想到可以这样差距大