求一个点数扣除的算法问题~
本人太菜,特来论坛求助各位大侠,具体需求如下.有A,B,C,D四个列,可以读取出来并让用户修改,但是修改后的四列的值的和必须和修改前四列的和相等.用修改前的A列和修改后的...
本人太菜,特来论坛求助各位大侠,具体需求如下.
有A,B,C,D四个列,可以读取出来并让用户修改,但是修改后的四列的值的和必须和修改前四列的和相等.
用修改前的A列和修改后的A列的差取绝对值,加上修改前的B和修改后的B的差取绝对值 以此类推,取4列改前和改后的差取绝对值,相加后除以2,得到用户修改了多少点.
然后做他的计算
单列最大值超过90,每修改一点,扣除100积分
单列最大值在90和80之间,每修改一点,扣除60积分
单列最大值在80和60之间,每修改一点,扣除30点积分
单列最大值在60和40之间,每修改一点,扣除10点积分
单列最大值在40以下,每修改一点,扣除5点积分
就是说,比如原来的数值是 10,10,10,65
用户修改为 0,0,0,95
那么他要扣除的积分应该是
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 //扣除每次30积分
81 82 83 84 85 86 87 88 89 90 //扣除每次60积分
91 92 93 94 95 //扣除每次100积分
合计扣除 5*100 + 10*60 + 15*30 = 1550
/////////////////////////////////////////////////////////////////////
小弟写了很长时间都没有弄好,所以来求教高手们,实现算法的语言不限,请各位高手不吝赐教 展开
有A,B,C,D四个列,可以读取出来并让用户修改,但是修改后的四列的值的和必须和修改前四列的和相等.
用修改前的A列和修改后的A列的差取绝对值,加上修改前的B和修改后的B的差取绝对值 以此类推,取4列改前和改后的差取绝对值,相加后除以2,得到用户修改了多少点.
然后做他的计算
单列最大值超过90,每修改一点,扣除100积分
单列最大值在90和80之间,每修改一点,扣除60积分
单列最大值在80和60之间,每修改一点,扣除30点积分
单列最大值在60和40之间,每修改一点,扣除10点积分
单列最大值在40以下,每修改一点,扣除5点积分
就是说,比如原来的数值是 10,10,10,65
用户修改为 0,0,0,95
那么他要扣除的积分应该是
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 //扣除每次30积分
81 82 83 84 85 86 87 88 89 90 //扣除每次60积分
91 92 93 94 95 //扣除每次100积分
合计扣除 5*100 + 10*60 + 15*30 = 1550
/////////////////////////////////////////////////////////////////////
小弟写了很长时间都没有弄好,所以来求教高手们,实现算法的语言不限,请各位高手不吝赐教 展开
展开全部
一开始没看见度要是2,哈哈
算法中的+1就是访问中根节点
typedef struct {
Tree *left;
Tree *left;
int data;////节点数据存储点,类型任意
} Tree ;
int treeNodeCount(*Tree t)
{
if(t==null)
return 0;
else {
if ((t->left!=null)&&(t->right!=null))
return treeNodeCount(t->left)+1+treeNodeCount(t->right);
else return 0;
}
}
你的算法也是可以的
算法中的+1就是访问中根节点
typedef struct {
Tree *left;
Tree *left;
int data;////节点数据存储点,类型任意
} Tree ;
int treeNodeCount(*Tree t)
{
if(t==null)
return 0;
else {
if ((t->left!=null)&&(t->right!=null))
return treeNodeCount(t->left)+1+treeNodeCount(t->right);
else return 0;
}
}
你的算法也是可以的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询