清宫图 生男生女java 算法 c算法

来源:互联网 发布:淘宝天下小二 培训 编辑:程序博客网 时间:2024/05/17 03:10

闲的无聊,弄个清宫图,算算,不多说了,代码贴上。

 通过查一个二维表,竖向是年龄,横向是月份,返回 0女、1男。

 先上JAVA版(先前有点问题,补充修改再贴上)的:

package com.example.babyforecast;/** * 生男生女算法 :通过查一个二维表,竖向是年龄,横向是月份,0女,1男。 *  * @fileName BoyOrGirl.java * @author naibo-liao * @CreateTime 2013-9-6 上午10:16:26 */public class BoyOrGirl {/** * 根据年龄和受孕月份来直接获得结果 *  * @param iAge *            年龄 * @param iMonth *            受孕月份 * @return */public static int GetBabyResult(int iAge, int iMonth) {int iResultTable[][] = {{0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},// 18{1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0},// 19{0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0},// 20{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},// 21{0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0},// 22{1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0},// 23{1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0},// 24{0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1},// 25{1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0},// 26{0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1},// 27{1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0},// 28{0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},// 29{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},// 30{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1},// 31{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1},// 32{0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1},// 33{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},// 34{1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1},// 35{0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1},// 36{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1},// 37{0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0},// 38{1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0},// 39{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0},// 40{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1},// 41{0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0},// 42{1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1},// 43{1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0},// 44{0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1},// 45};if (iAge < 18 || iAge > 45 || iMonth < 1 || iMonth > 12) {return 2;}return iResultTable[iAge - 18][iMonth - 1];}/** * 通过受孕年龄年龄来获取一年内生男生女的走势 * @param iAge 考虑受孕年龄 * @return */public static int[] GetBabyResultFromAge(int iAge) {int iResultTable[][] = {{0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1},// 18{1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0},// 19{0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0},// 20{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},// 21{0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0},// 22{1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0},// 23{1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0},// 24{0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1},// 25{1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0},// 26{0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1},// 27{1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0},// 28{0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},// 29{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1},// 30{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1},// 31{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1},// 32{0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1},// 33{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},// 34{1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1},// 35{0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1},// 36{1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1},// 37{0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0},// 38{1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0},// 39{0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0},// 40{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1},// 41{0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0},// 42{1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1},// 43{1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0},// 44{0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1},// 45};if (iAge < 18 || iAge > 45) {return null;}int[] result = new int[12];for (int i = 0; i < 12; i++) {result[i] = iResultTable[iAge - 18][i];}return result;}}


 


下边这个是C版的

 

uint8 GetBabyResult(int32 iAge , int32 iMonth){ uint8 iResultTable[28][12] = {      {0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x01, 0x01, 0x01, 0x01,0x01, 0x01},// 18{0x01, 0x00, 0x01, 0x00, 0x00,0x01, 0x01, 0x01, 0x01, 0x01,0x00, 0x00},// 19{0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x01, 0x01, 0x01, 0x00,0x01, 0x00},// 20{0x01, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00},// 21{0x00, 0x01, 0x01, 0x00, 0x01,0x00, 0x00, 0x01, 0x00, 0x00,0x00, 0x00},// 22{0x01, 0x01, 0x00, 0x01, 0x01,0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x00},// 23{0x01, 0x00, 0x01, 0x01, 0x00,0x01, 0x01, 0x00, 0x00, 0x00,0x00, 0x00},// 24{0x00, 0x01, 0x01, 0x00, 0x00,0x01, 0x00, 0x01, 0x01, 0x01,0x01, 0x01},// 25{0x01, 0x00, 0x01, 0x00, 0x00,0x01, 0x01, 0x01, 0x00, 0x00,0x00, 0x00},// 26{0x00, 0x01, 0x00, 0x01, 0x00,0x00, 0x01, 0x01, 0x01, 0x01,0x00, 0x01},// 27{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x01, 0x01, 0x01, 0x01,0x00, 0x00},// 28{0x00, 0x01, 0x00, 0x00, 0x01,0x01, 0x01, 0x01, 0x01, 0x00,0x00, 0x00},// 29{0x01, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x01, 0x01},// 30{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x01},// 31{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x01},// 32{0x00, 0x01, 0x00, 0x01, 0x00,0x00, 0x00, 0x01, 0x00, 0x00,0x00, 0x01},// 33{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x01, 0x01},// 34{0x01, 0x01, 0x00, 0x01, 0x00,0x00, 0x00, 0x01, 0x00, 0x00,0x01, 0x01},// 35{0x00, 0x01, 0x01, 0x00, 0x01,0x00, 0x00, 0x00, 0x01, 0x01,0x01, 0x01},// 36{0x01, 0x00, 0x01, 0x01, 0x00,0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x01},// 37{0x00, 0x01, 0x00, 0x01, 0x01,0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x00},// 38{0x01, 0x01, 0x01, 0x01, 0x01,0x00, 0x00, 0x01, 0x00, 0x01,0x00, 0x00},// 39{0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x01, 0x00, 0x01, 0x00,0x01, 0x00},// 40{0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x01, 0x01, 0x00, 0x01,0x00, 0x01},// 41{0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x00, 0x01, 0x01, 0x00,0x01, 0x00},// 42{0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x01},// 43{0x01, 0x01, 0x00, 0x01, 0x01,0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x00},// 44{0x00, 0x01, 0x01, 0x00, 0x00,0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x01},// 45};if (iAge<18 || iAge>45 || iMonth<1 || iMonth >12){return 2;}return iResultTable[iAge-18][iMonth-1];}uint8 GetBabyResultFromAge(int32 iAge,uint8 result[12]){ uint8 i;uint8 iResultTable[28][12] = {      {0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x01, 0x01, 0x01, 0x01,0x01, 0x01},// 18{0x01, 0x00, 0x01, 0x00, 0x00,0x01, 0x01, 0x01, 0x01, 0x01,0x00, 0x00},// 19{0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x01, 0x01, 0x01, 0x00,0x01, 0x00},// 20{0x01, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00},// 21{0x00, 0x01, 0x01, 0x00, 0x01,0x00, 0x00, 0x01, 0x00, 0x00,0x00, 0x00},// 22{0x01, 0x01, 0x00, 0x01, 0x01,0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x00},// 23{0x01, 0x00, 0x01, 0x01, 0x00,0x01, 0x01, 0x00, 0x00, 0x00,0x00, 0x00},// 24{0x00, 0x01, 0x01, 0x00, 0x00,0x01, 0x00, 0x01, 0x01, 0x01,0x01, 0x01},// 25{0x01, 0x00, 0x01, 0x00, 0x00,0x01, 0x01, 0x01, 0x00, 0x00,0x00, 0x00},// 26{0x00, 0x01, 0x00, 0x01, 0x00,0x00, 0x01, 0x01, 0x01, 0x01,0x00, 0x01},// 27{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x01, 0x01, 0x01, 0x01,0x00, 0x00},// 28{0x00, 0x01, 0x00, 0x00, 0x01,0x01, 0x01, 0x01, 0x01, 0x00,0x00, 0x00},// 29{0x01, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x01, 0x01},// 30{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x01},// 31{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x01},// 32{0x00, 0x01, 0x00, 0x01, 0x00,0x00, 0x00, 0x01, 0x00, 0x00,0x00, 0x01},// 33{0x01, 0x00, 0x01, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00,0x01, 0x01},// 34{0x01, 0x01, 0x00, 0x01, 0x00,0x00, 0x00, 0x01, 0x00, 0x00,0x01, 0x01},// 35{0x00, 0x01, 0x01, 0x00, 0x01,0x00, 0x00, 0x00, 0x01, 0x01,0x01, 0x01},// 36{0x01, 0x00, 0x01, 0x01, 0x00,0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x01},// 37{0x00, 0x01, 0x00, 0x01, 0x01,0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x00},// 38{0x01, 0x01, 0x01, 0x01, 0x01,0x00, 0x00, 0x01, 0x00, 0x01,0x00, 0x00},// 39{0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x01, 0x00, 0x01, 0x00,0x01, 0x00},// 40{0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x01, 0x01, 0x00, 0x01,0x00, 0x01},// 41{0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x00, 0x01, 0x01, 0x00,0x01, 0x00},// 42{0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x01, 0x00, 0x01, 0x01,0x01, 0x01},// 43{0x01, 0x01, 0x00, 0x01, 0x01,0x01, 0x00, 0x01, 0x00, 0x01,0x00, 0x00},// 44{0x00, 0x01, 0x01, 0x00, 0x00,0x00, 0x01, 0x00, 0x01, 0x00,0x01, 0x01},// 45};if (iAge<18 || iAge>45){return 2;}for (i=0;i<12;i++){result[i]=iResultTable[iAge-18][i];}return 1;}