Simon_Lu @ 2019-07-25 08:12:12
using namespace std; int main(){ int date1,date2,year,month,day,flag=0,i,md,md2=28; int d1,d2,d3,d4,dx; cin>>date1>>date2; for(i=date1;i<=date2;i++){ year=i/10000; if((year%4==0&&year%100!=0)||year%400==0) md2=29; else md2=28; month=(i%10000-i%100)/100; if(month==12&&day==30) i=i+10000-1100-md+1; switch(month){ case 1:md=31; case 2:md=md2; case 3:md=31; case 4:md=30; case 5:md=31; case 6:md=30; case 7:md=31; case 8:md=30; case 9:md=31; case 10:md=30; case 11:md=31; case 12:md=30; } day=i%100; if(day>md) i=i+100-md+1; d1=i%10; d2=(i%100-d1)/10; d3=(i%1000-d1-d2)/100; d4=(i%10000-d1-d2-d3)/1000; dx=d11000+d2100+d3*10+d4; if(dx==year) flag++; } cout<<flag; return 0; }
by Simon_Lu @ 2019-07-25 08:12:52
希望能够改正!
by Hyxss @ 2019-07-25 08:15:31
希望更丰富的展现?使用Markdown
by AFO蒟蒻选手 @ 2019-07-25 08:24:15
@MIT_LST 希望更丰富的展现?使用Markdown
by _lzh @ 2019-07-25 08:30:53
希望更丰富的展现?使用Markdown
by Simon_Lu @ 2019-07-25 08:48:54
using namespace std; int main(){ int date1,date2,year,month,day,i,md,md2,flag=0; int d1,d2,d3,d4,dx; cin>>date1>>date2; for(i=date1;i<=date2;i++){ year=i/10000; if((year%4==0&&year%100!=0)||year%400==0) md2=29; else md2=28; d1=i%10; d2=(i%100-d1)/10; d3=(i%1000-d1-d2)/100; d4=(i%10000-d1-d2-d3)/1000; dx=d11000+d2100+d3*10+d4; month=(i%10000-i%100)/100; day=i%100; switch(month){ case 1:md=31; case 2:md=md2; case 3:md=31; case 4:md=30; case 5:md=31; case 6:md=30; case 7:md=31; case 8:md=31; case 9:md=30; case 10:md=31; case 11:md=30; case 12:md=31; if(dx==year&&day==md&&month<=12){ flag++; i=i+10000-1130; } } cout<<flag; return 0; } }
by Simon_Lu @ 2019-07-25 08:59:11
by 蒟蒻甜心面包 @ 2019-07-25 09:03:42
@MIT_LST
问题一:不要用switch语句了,多年不用的我已经全忘了,帮不了你。(在NOIp中也不常用)
问题二:以后提问时发代码不要圧行或是用对话框发上来,看着有点难受,容易看漏看错,不利于发现问题,建议使用markdown;
把我的代码发给你,可以参考一下(我太弱了,逃)
#include<bits/stdc++.h>
using namespace std;
long long ans,m,n,date,num;
int mo[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int main(){
scanf("%lld%lld",&n,&m);
for(int i=1;i<=12;i++)
for(int j=1;j<=mo[i];j++){
date=(j%10)*1000+(j/10)*100+(i%10)*10+(i/10);
num=date*10000+i*100+j;
if(num<n||num>m)continue;
ans++;
}
cout<<ans;
}
以上就是我愚笨肤浅的蒟蒻看法;
by Simon_Lu @ 2019-07-25 09:05:19
https://pan.baidu.com/s/1g3MrpioPZzyiLDz9MGzGxA 提取码:6dxa
by Trinitrotoluene @ 2019-07-25 09:19:05
如果我没有记错的话,switch的用法为:
switch(表达式){
case 值1:{语句1;break;}
case 值2:{语句2;break;}
...
default:{语句n;break;}
}
by Simon_Lu @ 2019-07-25 14:05:17
@Trinitrotoluene 单行语句可以不加括号