printf输出
- 用0占位输出两位数比如 07,77等
printf("%02d",a)
;当然也可以用不同的数占多位数print("%05lld",a)
- 保留小数点前两位数和小数点后两位数:
printf("%05.2f",a)
表示算上小数点一共五位,不足五位在小数点前补0
即5是域宽,2是精度 - 如果想用C++输出方式保留两位小数
#include<iomanip>
#include<algorithm>
cout<<fixed<<setprecision(2)<<a<<endl;
题目分析:
我做这道题就是脑子不好使,我居然先按照年在按照月在按照日进行一步步的解决,当然这样写十分麻烦,不仅浪费时间还错误率高,看了题解中大佬的代码,才明白!!!
代码:
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
int main(){
ll n;
cin>>n;
int h=n/1000/60/60%24;
int m=n/1000/60%60;
int s=n/1000%60;
printf("%02lld:%02lld:%02lld",h,m,s);
return 0;
}
不管多少毫秒换算年,月,日其实归根到底都是换算成小时,分钟,秒,那么就将秒作为统一单位,进行换算