基础算法练习200题15、整数累加

举报
红目香薰 发表于 2022/08/31 15:59:58 2022/08/31
【摘要】 ​ ​编辑📋前言📋💝博客:【红目香薰的博客_CSDN博客-计算机理论,2022年蓝桥杯,MySQL领域博主】💝✍本文由在下【红目香薰】原创,首发于CSDN✍🤗2022年最大愿望:【服务百万技术人次】🤗💝专栏地址:【https://blog.csdn.net/feng8403000/category_11958599.html】💝       为了帮助很多想搞算法但又害怕自己搞...

 编辑


📋前言📋
💝博客:【红目香薰的博客_CSDN博客-计算机理论,2022年蓝桥杯,MySQL领域博主】💝

✍本文由在下【红目香薰】原创,首发于CSDN✍

🤗2022年最大愿望:【服务百万技术人次】🤗

💝专栏地址:【https://blog.csdn.net/feng8403000/category_11958599.html】💝 


      为了帮助很多想搞算法但又害怕自己搞不定的孩子们,老师付准备了200个入门的逻辑练习题,在这200个逻辑练习题下可以加强你们的基础算法能力,以次为基础当面对正式的算法题目的时候可以得心应手的面对。 

题目:

输入一个数n,计算从1~n所有整数的和。

输入样例:100

输出样例:5050

样例范围:1-10^9

暴力题解:

package com.item.action;

import java.util.Scanner;
/**
 * 
 * @author hongmuxiangxun 红目香薰 付文龙 老师付 laoshifu
 *
 */
public class demo15 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		sc.close();
		long result=0;
		for (int i = 1; i <=num; i++) {
			result+=i;
		}
		System.out.println(result);
	}

}

算法题解:

数列求和:

数列求和对按照一定规律排列的数进行求和。求Sn实质上是求{an}的通项公式,应注意对其含义的理解。常见的方法有公式法、错位相减法、倒序相加法、分组法、裂项法、数学归纳法、通项化归、并项求和。数列是高中代数的重要内容,又是学习高等数学的基础。在高考和各种数学竞赛中都占有重要的地位。数列求和是数列的重要内容之一,除了等差数列和等比数列有求和公式外,大部分数列的求和都需要有一定的技巧。

编辑

(首项+末项)×项数/2

举例:1+2+3+4+5+6+7+8+9+10=(1+10)×10/2=55

如下可看到:n(n+1)/2

package com.item.action;

import java.util.Scanner;
/**
 * 
 * @author hongmuxiangxun&nbsp;红目香薰&nbsp;付文龙&nbsp;老师付&nbsp;laoshifu
 *
 */
public class demo15 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		long num = sc.nextLong();
		sc.close();
		System.out.println(num*(num+1)/2);
	}
}

无限制题解:

BigDecimal

​Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。

package com.item.action;

import java.math.BigDecimal;
import java.util.Scanner;
/**
 * 
 * @author hongmuxiangxun&nbsp;红目香薰&nbsp;付文龙&nbsp;老师付&nbsp;laoshifu
 *
 */
public class demo15 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		BigDecimal num = sc.nextBigDecimal();
		sc.close();
		System.out.println(num.multiply(num.add(BigDecimal.ONE)).divide(new BigDecimal("2")));
	}

}

无限长度~~ 

编辑


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。