您的位置:首页 > Web前端

追求心仪女孩fenby

2013-10-13 13:30 204 查看
网上看到一道非常有趣的题目:

转自:fenby.com

三个男孩都暗恋一个女孩fenby,fenby有一个密码箱,箱子的密码是八位数字,谁先能把密码解开fenby就答应和他交往。

密码的设置规则如下:

1、密码的前四位数字是一个整数的平方,这四个数字不包含4、6、8,并且这四个数字的第一位和第四位相同,第二位和第三位不同。

2、密码的后四位数字是fenby出生后的200天的当天日期(注意当天日期只算日月,比如是19950101,那密码后四位是0101),已知fenby是1995年6月2号出生。

请根据以上线索求出密码箱上的密码是多少?

#include <stdio.h>
#include <math.h>

int
main ()
{
//######################################################
// 注意!!!
// 变量password用于保存fenby的保险箱密码
//######################################################

int password = 0;

int bef = 0;
int result = 0, i = 0;

for (i = 32; i < 99; i++)
{
result = i * i;
int p1 = result % 10;
int p2 = result % 100 / 10;
int p3 = result / 100 % 10;
int p4 = result / 1000;
if (p1 == p4 && p2 != p3)
{
if (p4 != 4 && p3 != 6 && p2 != 8 && p3 != 4)
bef = result;
}
}

int daysInMonth[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int month = 6, day = 2, year = 1995;

for (i = 0; i < 200; i++)
{
if (month == 2 && day == 28)
{
if (year % 4 == 0)
{
day == 1;
month++;
}
else
{
day++;
}
}
else
{
if (day == daysInMonth[month - 1])
{
day = 1;
month++;

if (month == 13)
month = 1;
year++;
}
else
{
day++;
}
}
// printf("month: %d, day: %d\n", month, day);
}

password = bef * 10000 + month * 100 + day;

//######################################################
// 注意!!!
// 以下代码用于输出计算结果,为了确保计算机能够正确处理
// 请不要修改。
//######################################################

/*输出fenby的密码 */
printf ("fenby's password is: [%d]\n", password);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: