您的位置:首页 > 编程语言 > Java开发

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

2013-09-06 11:09 323 查看
闲的无聊,弄个清宫图,算算,不多说了,代码贴上。

 通过查一个二维表,竖向是年龄,横向是月份,返回 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;
}


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