java编写程序求解:1-2+3-4+5…….n?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编写程序求解:1-2+3-4+5…….n?相关的知识,希望对你有一定的参考价值。

rt

首先你可以看看他们的规律:奇数为相加,偶数为相减。

然后再根据这个规律,去写出个步骤:

    可使用 for 循环,给定一个 n

    判断 n 为奇数还是偶数

    根据奇数还是偶数去进行相加或相减

代码如下:

public static void main(String[] args) 
    // Record the amount
    int amount = 0;

    // You could define a number directly or input from keyboard
    // Scanner in = new Scanner(System.in);
    // System.out.println("Please input a max number: ");
    // int n = in.nextInt();
    int n = 10;

    for (int i = 1; i <= n; i++) 
        if (i%2 != 0) 
            amount += i;
         else if (i%2 == 0) 
            amount -= i;
        
    
    System.out.println("amount = " + amount);

参考技术A

1:看题目分析,偶数是负的,奇数是正的,那么第一反应就是奇偶数的筛选

2:实现:使用求余运算符“%”

3:代码实现:

package com.fuzhu.test;

public class TestCase 

    public static void main(String[] args) 
        new TestCase().test(12);
    
    /**
     * @param cou 变量值的范围
     */
    private void test(int cou)
        int result = 0;
        for(int i=1;i<=cou;i++)
            if(i%2==0)//求余,偶数时是负数
                result -= i;
            else
                result += i;
            
        
        System.out.println(result);
    

参考技术B 不要这么麻烦吧
1-2=-1
3-4=-1
5-6=-1
。。。。
(n-1)-n=-1
累计起来就是
n/2*(-1)

要判断一下
n是奇还是偶
int num=n/2==0 ? 0:n;

int total=num+n/2*(-1);
参考技术C int sum =0;
//自己改n的值
int n = 10;
for (int i=1;i<=n;i++) 
    sum += i*Math.pow(-1,i-1);


system.out.println(sum);

参考技术D public int countNum(int n)

    int cntNum;
   cntNum = 0;
   for(int i=1;i<=n;i++)
   
       if(i%2 != 0)
           cntNum += i;
       
       else
           cntNum -= i;
       
    
    return cntNum;

4.18n阶勒让德多项式求解

Q:编写程序,输入正整数n和任意数x,求出勒让德多项式的值Pn(x)

 

#include <iostream>
#include<cstdio>
using namespace std;

float Rand(int n,float x) {
	if(n==0)	return 1;
	else if(n==1)	return x;
	else return ((2*n-1)*x-Rand(n-1,x)-(n-1)*Rand(n-2,x))/n;
	
} 
int main() {
	int n;
	float x,p;
	cin>>n>>x;
	p=Rand(n,x);
	cout<<p;
    return 0;
}

  

以上是关于java编写程序求解:1-2+3-4+5…….n?的主要内容,如果未能解决你的问题,请参考以下文章

Farey Sequence(欧拉函数)

编写Java程序,创建数组a和b,将数组a中索引位置0~3的元素复制到数组b中,最后将a和b数组中元素输出。求解

面试题_程序编写题_编程实现表达式1-2+3-4+5-6+….+n的计算结果_一列数的规则如下: 112358132134...... 求第30位数是多少_小明去商店买糖, 店主说糖是

ZZNUOJ_用C语言编写程序实现1155:简易版最长序列(附完整源码)

剑指 Offer 66. 构建乘积数组(转换求解上下三角,Java)

剑指 Offer 66. 构建乘积数组(转换求解上下三角,Java)