世界对称日 2020.2.2

参考了徐同学的思路,错了无数遍,终于改成了和徐同学相似度极高的代码,感谢徐同学。

#include <iostream>
#include<cstdio>
#include<cstdlib>
int judge1(int n);
void all(int y,int m,int d);
int judge2(void);
int letter[100000000];
int len;
using namespace std;
int main()
{
    int i,j,k,t,ans=0,p;
    for(i=1;i<=2020;i++)
        for(j=1;j<=12;j++)
        {
            t=judge1(j);
            for(k=1;k<=t;k++)
            {
                all(i,j,k);
                if(judge2())
                {
                    ans++;
                    for(p=1;p<=len;p++) printf("%d",letter[p]);
                    printf("\n");
                }
            }
        }
        printf("%d",ans);
}
int judge1(int n)
{
    if(n==2) return 28;
    else if(n==1||n==3||n==5||n==7||n==8||n==10||n==12) return 31;
    else return 30;
}
void all(int n,int m,int l)
{
 len=0;
 if(l>=10)
    while(l>0) {letter[++len]=l%10;l/=10;}
 else {letter[++len]=l;letter[++len]=0;}
 if(m>=10)
    while(m>0) {letter[++len]=m%10;m/=10;}
 else {letter[++len]=m;letter[++len]=0;}
 while(n>0) {letter[++len]=n%10,n/=10;}
 int t=len/2,x,i;
 for(i=1;i<=t;++i)
 {
  x=letter[i];
  letter[i]=letter[len-i+1];
  letter[len-i+1]=x;
 }
}
int judge2(void)
{
    int i;
    for(i=1;i<=len/2;i++)
        if(letter[i]!=letter[len+1-i])
            return 0;
    return 1;
}

结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值