问题标题: 酷町堂:3959 算式求解

0
0
已解决
刘欣然
刘欣然
高级光能
高级光能

求各位大佬帮我看看这题怎么做

         

题目描述 Description

求算式1-2+3-4+5-6+7-8+9-10+……的值,算式的最后一个数是n(10<=n<=100)。

输入描述 Input Description

一个正整数n。

输出描述 Output Description

一个整数,表示算式的结果。

样例输入 Sample Input


 

10

样例输出 Sample Output


 

-5

刘欣然在2020-01-31 21:02:22追加了内容

急需完整代码!!


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

两种解法

第一种:循环求和,i从1遍历到n,遇到奇数就用ans加它,遇到偶数就用ans减它

(图片)

最后输出ans

能AC

第二种:加法结合律,把1-2看做一个整体,3-4看做一个整体......以此类推,如果n是偶数,直接输出-1*(n/2),化简得-0.5*n

如果n是奇数,就把它前面的数字之和先求出来,即int(n/2)*-1,最后加上n

0
李泽远
李泽远
高级天翼
高级天翼

思路:

以n的数值为x,算式结果为y,分别计算出来,得到表格:

x:   1         2         3         4        5        6         7        8        9        10
y:   1        -1        2         -2       3        -3       4        -4       5        - 5

当x是偶数时,y=-x/2;

当x时奇数时,y=x/2+1;(x/2取整数值)

伪代码:

定义;输入;

if(n%2==0)
        cout<<-n/2;
else
        cout<<n/2+1;

0
刘欣然
刘欣然
高级光能
高级光能

9fa8a50f-c4c4-41a2-84b3-c665b651cad8.png (296×138)

AC啦啦啦啦啦啦啦啦绿

我要回答