追求心仪女孩fenby

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

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


#include 
#include 


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;
}


你可能感兴趣的:(C,C)