while(i){
answer=answer*10+i%10;
i/=10;
}
求反序数
int cday[2][13]{
{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}
};\\预处理
bool IsLeapYear(int year){
if(year%400==0||(year%100!=0&&year%4==0))
return 1;
else return ;}
int main(){
int year,month,day;
while(scanf("%d%d%d",&year,&month,&day)!=EOF){
int number=0;
int row=IsLeapYear(year);
for(int j=0;j<month;j++){
number+=cday[row][j];
}
number+=day;
printf("%d\n",number);
求日期需预处理,判断是否为闰年。
string D(string str,int x){
int rem=0;\\余数
for(int i=0;i<str.size();i++){
int current=rem*10+str[i]-'0';
str[i]=current/x+'0';
rem=current%x; }
int pos=0;
while(str[pos]=='0'){
pos++;}
return str.substr(pos);
}
进制转换。
int main(){
vector<int> a;
vector<int> b;\\迭代器
for(int i=2;i<=60;i++){
int sum=0;
for(int j=1;j<i;j++){
if(i%j==0)
sum+=j;
}
if(sum==i)
a.push_back(i);
else if(sum>i)
b.push_back(i);
}
printf("E: ");
for(int i=0;i<a.size();i++){
printf("%d ",a[i]);
}
完数与盈数 会用到迭代器(使遍历变得简单)