C/C++掌握技能(三)
#include<cstdio> int month[13][2]={ //平年和闰年的每个月的天数 {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30}, {31,31},{31,31},{30,30},{31,31},{30,30},{31,31} }; bool isLeap(int year){ //判断闰年 return (year%4==0 && year %100!=0) || (year %400==0); } int main(){ int time1,y1,m1,d1; int time2,y2,m2,d2; while(scanf("%d%d",&time1,&time2)!= EOF){ if(time1>time2){ //让第一个日期早于第二个日期 int tmp=time1; time1=time2; time2=tmp; } y1=time1/10000,m1=time1%10000/100,d1=time1%100; y2=time2/10000,m2=time2%10000/100,d2=time2%100; int ans=1; //记录结果 /*第一个日期没有达到第二个日期时进行循环 即!((y1==y2) && (m1==m2) && (d1==d2))*/ while(y1 < y2 || m1 < m2 || d1<d2) { d1++; //天数加1 if(d1 == month[m1][isLeap(y1)]+1) //满当月天数 { m1++; //日期变为下个月的1号 d1=1; } if(m1==13){ //月份满12个月 y1++; //日期变为下一年的1月 m1=1; } ans++; //累计 } printf("%d\n",ans); //输出结果 } return 0; }
int y=0, product =1; //product在循环中会不断乘p,得到1,P,P^2、P^3. while (x = 0) { y=y+ (x 8 10) * product; //x号10是为了每次获取x的个位数 x=x / 10; //去掉x的个位 product = product * P; }
int z[40],num=0; 数组z存放Q进制数y的每一位,num为位数 do{ z[num+] = y%Q; //除基取余 y=y/Q; }while(y!=0); //当商不为0时进行循环