zzuli1006: 求等差数列的和

2018年1月26日17:18:40 3 1,337 views

题目描述

给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。

输入

输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.

输出

输出占一行,包含一个整数,为该等差数列的和。

样例输入

2 11 3

样例输出

26

 

等差数列基本公式: 
末项=首项+(项数-1)×公差 
项数=(末项-首项)÷公差+1 
首项=末项-(项数-1)×公差 
和=(首项+末项)×项数÷2 
末项:最后一位数 
首项:第一位数 
项数:一共有几位数 
和:求一共数的总和

 java:

import java.util.Scanner;

public class zzuli1006 {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		//定义三个整数
		int a1 = sc.nextInt();
		int an = sc.nextInt();
		int d = sc.nextInt();
		//求项数,项数=(末项-首项)÷公差+1 
		int n = (an-a1)/d + 1;
		//求和,和=(首项+末项)×项数÷2 
		int sum = (a1 + an) * n / 2;
		System.out.println(sum);
	}
}

C:

#include <stdio.h>

int main(int argc, char const *argv[])
{
	int a1,an,d;
	scanf("%d",&a1);
	scanf("%d",&an);
	scanf("%d",&d);
	//求项数,项数=(末项-首项)÷公差+1 
	int n = (an - a1) / d + 1;
	//求和,和=(首项+末项)×项数÷2 
	int sum = (a1 + an) * n / 2;
	printf("%d\n",sum);
	return 0;
}

C++:

#include <iostream>
#include <stdlib.h>
using namespace std;

int main(int argc, char const *argv[])
{
	int a1,an,d;
	cin >> a1 >> an >> d;
	//求项数,项数=(末项-首项)÷公差+1 
	int n = (an - a1) / d + 1;
	//求和,和=(首项+末项)×项数÷2 
	int sum = (a1 + an) * n / 2;
	cout << sum << endl;
	return 0;
}

为了自考本科,每周做一道acm题练习C++语言。

  • A+
所属分类:ACM

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:3   其中:访客  2   博主  1

    • avatar wordpress企业主题 1

      学这些数学首先得很好才是

      • avatar 耐火砖 1

        拜访博主,新年快乐