11.奖金提成
简要描述:企业发放的奖金根据利润提成。
利润低于或等于100000元的,奖金可提10%;
利润高于100000元,低于200000元(100000≤200000)时;
低于100000元的部分按10%提成;
高于100000元的部分,可提成7.5%;
200000≤400000时,低于200000元部分仍按上述办法提成,(下同);
高于200000元的部分按5%提成;
400000≤600000元时,高于400000元的部分按3%提成;
600000≤1000000时,高于600000元的部分按1.5%提成;
I>1000000时,超过1000000元的部分按1%提成。
从键盘输入当月利润I,求应发奖金总数。
输入:一个整数,当月利润。
输出:一个整数,奖金。
例如:输入900
输出90
备注:奖金向下取整,不作四舍五入处理。
利润低于或等于100000元的,奖金可提10%;
利润高于100000元,低于200000元(100000≤200000)时;
低于100000元的部分按10%提成;
高于100000元的部分,可提成7.5%;
200000≤400000时,低于200000元部分仍按上述办法提成,(下同);
高于200000元的部分按5%提成;
400000≤600000元时,高于400000元的部分按3%提成;
600000≤1000000时,高于600000元的部分按1.5%提成;
I>1000000时,超过1000000元的部分按1%提成。
从键盘输入当月利润I,求应发奖金总数。
输入:一个整数,当月利润。
输出:一个整数,奖金。
例如:输入900
输出90
备注:奖金向下取整,不作四舍五入处理。
12.判断任意两台计算机的IP地址是否属于同一子网络
简要描述:子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
请看以下示例:
运算演示之一:
IP地址:192.168.0.1
子网掩码:255.255.255.0
AND运算
转化为二进制进行运算:
IP地址:11010000.10101000.00000000.00000001
子网掩码:11111111.11111111.11111111.00000000
AND运算:11010000.10101000.00000000.00000000
转化为十进制后为: 192.168.0.0
运算演示之二:
IP地址:192.168.0.254
子网掩码:255.255.255.0
AND运算
转化为二进制进行运算:
IP地址:11010000.10101000.00000000.11111110
子网掩码:11111111.11111111.11111111.00000000
AND运算:11010000.10101000.00000000.00000000
转化为十进制后为:192.168.0.0
通过以上对两台计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0,所以这二台计算机可视为是同一子网络。
接口说明
原型:
int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);
输入参数:
char * pcIP1: 计算机1的IP地址,格式:“192.168.0.254”
char * pcIP2: 计算机2的IP地址,格式:“192.168.0.1”
char * pcSubNetworkMask: 子网掩码,格式:“255.255.255.0”
返回值:
0:IP1与IP2不属于同一子网络。
1:IP1与IP2属于同一子网络。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
请看以下示例:
运算演示之一:
IP地址:192.168.0.1
子网掩码:255.255.255.0
AND运算
转化为二进制进行运算:
IP地址:11010000.10101000.00000000.00000001
子网掩码:11111111.11111111.11111111.00000000
AND运算:11010000.10101000.00000000.00000000
转化为十进制后为: 192.168.0.0
运算演示之二:
IP地址:192.168.0.254
子网掩码:255.255.255.0
AND运算
转化为二进制进行运算:
IP地址:11010000.10101000.00000000.11111110
子网掩码:11111111.11111111.11111111.00000000
AND运算:11010000.10101000.00000000.00000000
转化为十进制后为:192.168.0.0
通过以上对两台计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0,所以这二台计算机可视为是同一子网络。
接口说明
原型:
int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);
输入参数:
char * pcIP1: 计算机1的IP地址,格式:“192.168.0.254”
char * pcIP2: 计算机2的IP地址,格式:“192.168.0.1”
char * pcSubNetworkMask: 子网掩码,格式:“255.255.255.0”
返回值:
0:IP1与IP2不属于同一子网络。
1:IP1与IP2属于同一子网络。
13.求M的N次方的最后三位
简要描述:正整数M 的N次方有可能是一个非常大的数字,我们只求该数字的最后三位
例1:
比如输入5和3 ,5的3次方为125,则输出为125
例2:
比如输入2和10 2的10次方为1024 ,则输出结果为24
例3:
比如输入111和5 111的5次方为116850581551,则输出结果为551
例1:
比如输入5和3 ,5的3次方为125,则输出为125
例2:
比如输入2和10 2的10次方为1024 ,则输出结果为24
例3:
比如输入111和5 111的5次方为116850581551,则输出结果为551
14.求车速
简要描述:一辆以固定速度行驶的汽车,司机在上午10点看到里程表(里程表有6位)上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的,例如95859公里)。两小时后里程表上出现了一个新的对称数。问该车的速度(公里/小时)是多少?
接口说明
原型:
int CalcSpeedOfCar(int iCurrentMileage, int * piCarSpeed);
输入参数:
int pcCurrentMileage:当前里程数(为对称数) (pcCurrentMileage ≤ 999999)
输出参数:
int * piCarSpeed:汽车速度
返回值:
0:汽车速度计算成功
1:汽车速度计算失败,在里程表的范围内找不到下一个对称数
接口说明
原型:
int CalcSpeedOfCar(int iCurrentMileage, int * piCarSpeed);
输入参数:
int pcCurrentMileage:当前里程数(为对称数) (pcCurrentMileage ≤ 999999)
输出参数:
int * piCarSpeed:汽车速度
返回值:
0:汽车速度计算成功
1:汽车速度计算失败,在里程表的范围内找不到下一个对称数
15.求某二进制数中1的个数
简要描述:
求某二进制数中1的个数。
给定一个unsigned int型的正整数,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。
详细描述:
接口说明
原型:
int GetCount(unsigned int num)
输入参数:
num 给定的正整数
输出参数(指针指向的内存区域保证有效):
无
返回值:
返回1的个数
举例:
输入13,则对应的二进制是1101,那么1的个数为3个。
则:返回3。
求某二进制数中1的个数。
给定一个unsigned int型的正整数,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。
详细描述:
接口说明
原型:
int GetCount(unsigned int num)
输入参数:
num 给定的正整数
输出参数(指针指向的内存区域保证有效):
无
返回值:
返回1的个数
举例:
输入13,则对应的二进制是1101,那么1的个数为3个。
则:返回3。
16.求圆的面积
简要描述:计算半径为1到10的圆的面积,若面积在40到90之间请输出
接口
int OutPutRotundityArea(float* pResultArray,int &ArrayCount)
float* pResultArray :float型数组
Int ArrayCount:数组长度
规格
要求时间复杂度为O(n)
π = 3.14
接口
int OutPutRotundityArea(float* pResultArray,int &ArrayCount)
float* pResultArray :float型数组
Int ArrayCount:数组长度
规格
要求时间复杂度为O(n)
π = 3.14
17.求子数组的最大和
简要描述:输入一个整形数组。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。
接口
Int GetSubArraySum(Int* pIntArray,Int nCount);
规格
要求时间复杂度为O(n)
举例
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,
因此输出为该子数组的和18
接口
Int GetSubArraySum(Int* pIntArray,Int nCount);
规格
要求时间复杂度为O(n)
举例
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,
因此输出为该子数组的和18
18.取给定正整数的指定bit位开始的指定长度的数据
简要描述:接口说明
原型:
unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)
输入参数:
input 输入的整数
startbit 需要获取的开始bit
bitlen 需要获取的bit长度
输出参数(指针指向的内存区域保证有效):
无
返回值:
对应的bit取值
举例:
输入:4, 2, 2
返回:2
4对应的二进制为100(bit0和bit1为0,bit2为1),那么从bit2开始的2位为10,那么对应的十进制为2。
原型:
unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen)
输入参数:
input 输入的整数
startbit 需要获取的开始bit
bitlen 需要获取的bit长度
输出参数(指针指向的内存区域保证有效):
无
返回值:
对应的bit取值
举例:
输入:4, 2, 2
返回:2
4对应的二进制为100(bit0和bit1为0,bit2为1),那么从bit2开始的2位为10,那么对应的十进制为2。
19.上楼梯问题
简要描述:爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶?
20.数列求和
简要描述:编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘。
1+1/2!+ .... +1/n!
计算结果保存在double类型变量中。
接口说明
原型:
void GetResult(int InputNum, double *NumResult);
输入参数:
Int InputNum:输入一个正整数,进行表达式计算
char *NumResult:输出表达式的值
返回值:
void
1+1/2!+ .... +1/n!
计算结果保存在double类型变量中。
接口说明
原型:
void GetResult(int InputNum, double *NumResult);
输入参数:
Int InputNum:输入一个正整数,进行表达式计算
char *NumResult:输出表达式的值
返回值:
void