清宫图 生男生女java 算法 c算法
2013-09-06 11:09
323 查看
闲的无聊,弄个清宫图,算算,不多说了,代码贴上。
通过查一个二维表,竖向是年龄,横向是月份,返回 0女、1男。
先上JAVA版(先前有点问题,补充修改再贴上)的:
下边这个是C版的
通过查一个二维表,竖向是年龄,横向是月份,返回 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; }
相关文章推荐
- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)
- Java基础算法练习五题——(1)
- 常见算法之希尔排序java实践
- java语言求最小公倍数和最大公约数的三种算法
- 用Java实现小球碰壁反弹的简单实例(算法十分简单)
- java垃圾回收算法之-标记清除
- Java GC基本算法
- Java图片上查找图片算法
- Manacher's Algorithm 马拉车算法---Java实现
- java 算法基础~快速排序算法
- 蓝桥杯 算法训练VIP 集合运算(Java解题)
- java按优先权调度进程算法实现
- Java数据结构及算法实例:选择排序 Selection Sort
- 算法-java代码实现堆排序
- 选择排序 Java数据结构与算法
- 算法收藏(stl 背包 并查集 矩阵乘法 java大数)
- 算法:哈夫曼编码算法(Java)
- 分治算法-球队循环赛日程安排-java实现
- 协同过滤(ALS)算法原理及Spark MLlib调用实例(Scala/Java/Python)
- Java与算法之(13) - 二叉搜索树