6-10 循环的四则运算 (10 分)
对于给定的正整数N,对不超过它的全部正整数(指N,N-1,N-2,....3,2,1)集合中循环的依次添加*,/,+,-运算符,例如,N=9时,依次循添加*/+-运算符后的表达式为:9*8/7+6-5*4/3+2-1。试编写函数,计算并返回表达式的值。
函数接口定义:
int fun( int N);
输入样例1:
输入一个正整数(在整数的表示范围内)
8
输出样例1:
表达式:8*7/6+5-4*3/2+1=9+5-6+1=9,故函数返回9。
9
输入样例2:
输入一个正整数(在整数的表示范围内)
5
输出样例2:
表达式:5*4/3+2-1=6+1=7,故函数返回7。
7
/* 请在这里填写答案 */
int fun(int N)
{
int m = N;
int a, b, c, d;
if(m == 1)
return 1;
if(m == 2)
return 2;
if(m == 3)
return 6;
a = m;
b = a - 1;
c = a - 2;
d = a - 3;
int jg1 = a * b / c + d;
int q = m / 4;
for (int i = 0;i < q - 1;i++)
{
a = a - 4;
b = b - 4;
c = c - 4;
d = d - 4;
int jg2 = a * b / c - d;
jg1 = jg1 - jg2;
}
int w = m % 4;
if (w == 1)
jg1 = jg1 - 1;
if (w == 2)
jg1 = jg1 - 2 * 1;
if (w == 3)
jg1 = jg1 - 3 * 2 / 1;
return jg1;
}