社区讨论

P2010 回文日期 为何只有60分,蒟蒻求助

P2010[NOIP 2016 普及组] 回文日期参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi7umro0
此快照首次捕获于
2025/11/21 03:53
4 个月前
此快照最后确认于
2025/11/21 03:53
4 个月前
查看原帖
数据点2过不了,蒟蒻求助 输入:10000101 99991231 输出:331
CPP
#include <iostream>
using namespace std;
int shu[9];
int panduan(int a)
{
	for(int i=1;i<=8;++i)
	{
		shu[i]=a%10;
		a/=10;
	}
	if(shu[1]==shu[8] && shu[2]==shu[7] && shu[3]==shu[6] && shu[4]==shu[5])
	{
		return 1;
	}
	else 
	{
		return 0;
	}
}

int main()//n1*10000 + y1*100 + r1
{
	int date1,date2,n1,y1,r1,a=0,jishu=0;
	cin>>date1>>date2;
	n1=date1/10000;
	y1=date1%10000/100;
	r1=date1%100;
	
	for(r1;n1*10000+y1*100+r1<=date2;r1++)
	{
		if(n1%4==0 || n1%400==0)
		{
			if(y1==1||y1==3||y1==5||y1==7||y1==8||y1==10||y1==12)
			{
				if(r1==31)
				{
					r1=1;
					y1++;
				}
			}
			else if(y1==4||y1==6||y1==9||y1==11)
			{
				if(r1==30)
				{
					r1=1;
					y1++;
				}
			}
			else if(y1==2)
			{
				if(r1==29)
				{
					r1=1;
					y1++;
				}
			}
		}
		else
		{
			if(y1==1||y1==3||y1==5||y1==7||y1==8||y1==10||y1==12)
			{
				if(r1==31)
				{
					r1=1;
					y1++;
				}
			}
			else if(y1==4||y1==6||y1==9||y1==11)
			{
				if(r1==30)
				{
					r1=1;
					y1++;
				}
			}
			else if(y1==2)
			{
				if(r1==28)
				{
					r1=1;
					y1++;
				}
			}
		}
		if(y1==13)
		{
			y1=1;
			n1++;
		}
		a=n1*10000+y1*100+r1;
		
		if(panduan(a)==1)
		{
			cout<<a<<endl;
			jishu++;
		}
	}
	cout<<jishu;
}
写了两天4小时了还没对呜哇哇哇哇

回复

2 条回复,欢迎继续交流。

正在加载回复...