Joseph_J @ 2023-07-04 15:26:29
#include<bits/stdc++.h>
using namespace std;
int num=0; //计数器
int ye[10001]; //后面用的数组
bool year(int x,int y){ //判断闰年的自定义函数
cin>>x>>y;
1582<=x; x<y; y<=3000; //数据规模
for(int i=x;i<=y;i++){ //逐个测试
if((i%4==0)&&(i%100==0)){ //判断是否为闰年
if(i%400==0) { //四百年不闰
year(x,y)==false;
}
else{
year(x,y)==true;
num++; //若为真,计数器++
ye[num]=i; //存入数组
}
}
}
cout<<num<<endl; //题目要求
for(int r=1;r<=num;r++){ //循环取出数组中的数
cout<<ye[r]<<' ';
}
}
int main(){
int x,y; //重新定义(覆盖)
year(x,y); //代入自定义函数
return 0; //不太华丽的结束
}
by Joseph_J @ 2023-07-04 15:27:00
哪位神仙指个路
by As_Snow @ 2023-07-04 15:34:07
@s1mple__navi 一百年不闰,四百年闰
by As_Snow @ 2023-07-04 15:35:37
另外你的伪代码写的很好看
by xUwT @ 2023-07-04 15:39:01
删了加个注释又发出来没必要吧
首先
1582<=x; x<y; y<=3000;
为什么不写注释
其次
if((i%4==0)&&(i%100==0)){
if(i%400==0) {
year(x,y)==false;
}
else{
year(x,y)==true;
num++;
ye[num]=i;
}
}
判断错误
by gfgoodluck @ 2023-07-04 15:47:21
@xuwt 他可能甚至把<=当成了一行代码
by Joseph_J @ 2023-07-04 16:18:22
刚刚改了一下发现输出不了(悲
#include<bits/stdc++.h>
using namespace std;
int num=0; //计数器初始化
int ye[10001]; //后面用的数组
bool year(int x,int y){ //判断闰年的自定义函数
1582<=x; x<y; y<=3000; //数据规模
for(int i=x;i<=y;i++){ //逐个测试
if((i%4==0)&&(i%100!=0)){ //判断是否为闰年
if(i%400==0){
year(x,y)==true;
ye[num++]=i;
}
}else{
year(x,y)==false;
}
}
cout<<num<<endl; //题目要求
for(int r=1;r<=num;r++){ //循环取出数组中的数
cout<<ye[r]<<' ';
}
}
int main(){
int x,y; //重新定义(覆盖)
cin>>x>>y;
year(x,y); //代入自定义函数
return 0;
}
by xUwT @ 2023-07-04 16:19:01
@gfgoodluck :P
by xUwT @ 2023-07-04 16:20:33
if((i%4==0)&&(i%100!=0)){ //判断是否为闰年
if(i%400==0){
year(x,y)==true;
ye[num++]=i;
}
}else{
year(x,y)==false;
}
还是有问题
(i%4==0)&&(i%100!=0)
与
i%400==0
应为并列条件
by xUwT @ 2023-07-04 16:22:46
并且
i%400==0
与
i%100!=0
相悖,所以你没输出
另外