追求心仪女孩fenby

来源:互联网 发布:淘宝中差评外包 编辑:程序博客网 时间:2024/04/28 01:04

网上看到一道非常有趣的题目:

转自:fenby.com
三个男孩都暗恋一个女孩fenby,fenby有一个密码箱,箱子的密码是八位数字,谁先能把密码解开fenby就答应和他交往。
密码的设置规则如下:
1、密码的前四位数字是一个整数的平方,这四个数字不包含4、6、8,并且这四个数字的第一位和第四位相同,第二位和第三位不同。
2、密码的后四位数字是fenby出生后的200天的当天日期(注意当天日期只算日月,比如是19950101,那密码后四位是0101),已知fenby是1995年6月2号出生。
请根据以上线索求出密码箱上的密码是多少?


#include <stdio.h>#include <math.h>intmain (){  //######################################################  // 注意!!!  // 变量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;}