69,380
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int isLeap(int);
void computeDate(int,int,int,int,int);
int main()
{
int days[12]={31,29,31,30,31,30,31,31,30,31,30,31},quotient;
register int x,y;
for(x=1;x<13;x++)
for(y=1;y<=days[x-1];y++)
{
quotient=(x*y-x-y+10)/9;
if(!((x*y-x-y+10)%9) && quotient>0 && quotient<10)
computeDate(1,9,quotient,x,y);
quotient=(x*y-x-y+2)/9;
if(!((x*y-x-y+2)%9) && quotient>-1 && quotient<10)
computeDate(2,0,quotient,x,y);
quotient=(x*y-x-y+3)/9;
if(!((x*y-x-y+3)%9) && quotient>-1 && quotient<2)
computeDate(2,1,quotient,x,y);
}
return(0);
}
int isLeap(int year)
{
return(year%400==0||(year%4==0&&year%100));
}
void computeDate(int a,int b,int c,int month,int day)
{
static int count=0;
int d=month*day-c*10;
int year=a*1000+b*100+c*10+d;
if(year<1911 || year>2111)
return;
if(d>-1 && d<10)
{
if(month==2&&day==29&&!isLeap(year))
return;
printf("No. %d: %d%d%d%d-%d-%d",++count,a,b,c,d,month,day);
if(a==1&&b==9&&month+day==20&&2011-year==20)
printf("\t<==your birth day");
printf("\n");
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDate t;
int x,y,year,a,b,c,d;
for(t=StrToDate("1911-1-1");t< StrToDate("2112-1-1");t++)
{
year=YearOf(t);
x=MonthOf(t);
y=DayOf(t);
a=year/1000;
b=(year/100)%10;
c=(year/10)%10;
d=year%10;
if ((a==1) && (b==9 ) && ( x * y == 10*c + d ) && (x+y==a + b + c + d)
&& (10+a+b==x+y) && (x+y==2011-year))
Memo1->Lines->Add(DateToStr(t));
}
}
#include <stdio.h>
int is_leapyear(int year)
{
if(year%400==0)
return 1;
if(year%4==0 && year%100!=0)
return 1;
return 0;
}
int days(int year,int month)
{
int pd[12]={31,28,31,30,31,30,31,31,30,31,30,31},
rd[12]={31,29,31,30,31,30,31,31,30,31,30,31};
if(is_leapyear(year))
return rd[month-1];
else
return pd[month-1];
}
int main(void)
{
int a,b,c,d,x,y,year;
for(year=1911;year<2112;++year)
{
d=year%10;
c=(year%100-d)/10;
b=(year%1000-year%100)/100;
a=(year-year%1000)/1000;
for(x=1;x<=12;++x)
{
for(y=1;y<=days(year,x);++y)
{
if((x*y==10*c+d) && (x+y==a+b+c+d))
{
printf("%d %d %d\n",year,x,y);
if(a==1 && b==9 && 10+a+b==x+y && x+y==2011-year)
printf("your birth: %d %d %d\n",year,x,y);
}
}
}
}
getchar();
return 0;
}