Average of even numbers till a given even number
Last Updated :
22 Jun, 2022
Given an even number n, find the average of even numbers from 1 to n.
Examples :
Input : 10
Output : 6
Explanation:
(2 + 4 + 6 + 8 + 10 )/5
= 30/5
= 6
Input : 100
Output : 51
Method 1
We can calculate average by adding each even numbers till n and then dividing sum by count.
C++
#include <stdio.h>
int averageEven( int n)
{
if (n % 2 != 0) {
printf ( "Invalid Input" );
return -1;
}
int sum = 0, count = 0;
while (n >= 2) {
count++;
sum += n;
n = n - 2;
}
return sum / count;
}
int main()
{
int n = 16;
printf ( "%d" , averageEven(n));
return 0;
}
|
Java
import java.io.*;
class GFG {
static int averageEven( int n)
{
if (n % 2 != 0 ) {
System.out.println( "Invalid Input" );
return - 1 ;
}
int sum = 0 , count = 0 ;
while (n >= 2 ) {
count++;
sum += n;
n = n - 2 ;
}
return sum / count;
}
public static void main(String args[])
{
int n = 16 ;
System.out.println(averageEven(n));
}
}
|
Python3
def averageEven(n) :
if (n % 2 ! = 0 ) :
print ( "Invalid Input" )
return - 1
sm = 0
count = 0
while (n > = 2 ) :
count = count + 1
sm = sm + n
n = n - 2
return sm / / count
n = 16
print (averageEven(n))
|
C#
using System;
class GFG {
static int averageEven( int n)
{
if (n % 2 != 0) {
Console.Write( "Invalid Input" );
return -1;
}
int sum = 0, count = 0;
while (n >= 2) {
count++;
sum += n;
n = n - 2;
}
return sum / count;
}
public static void Main()
{
int n = 16;
Console.Write(averageEven(n));
}
}
|
PHP
<?php
function averageEven( $n )
{
if ( $n % 2 != 0)
{
echo ( "Invalid Input" );
return -1;
}
$sum = 0;
$count = 0;
while ( $n >= 2)
{
$count ++;
$sum += $n ;
$n = $n - 2;
}
return $sum / $count ;
}
$n = 16;
echo (averageEven( $n ));
?>
|
Javascript
<script>
function averageEven( n)
{
if (n % 2 != 0) {
document.write( "Invalid Input" );
return -1;
}
let sum = 0, count = 0;
while (n >= 2) {
count++;
sum += n;
n = n - 2;
}
return sum / count;
}
let n = 16;
document.write( averageEven(n));
</script>
|
Output:
9
Time Complexity: O(n)
Auxiliary Space: O(1)
Method 2
The average of even numbers can be find out only in single steps
by using the following formula :-
[n + 2 ] / 2 where n is last even number.
How does this formula work?
We know there are (n)/2 even numbers till n. For example there are two even number till 4 and there are three even numbers till 6.
Sum of first k even numbers is k * (k + 1)
Putting k = n/2, we get sum of first n/2 even numbers as n/2(n/2 + 1)
Average of first n/2 even numbers (or even numbers till n) = (n + 2)/2
C++
#include <bits/stdc++.h>
using namespace std;
int averageEven( int n)
{
if (n % 2 != 0) {
cout<< "Invalid Input" ;
return -1;
}
return (n + 2) / 2;
}
int main()
{
int n = 16;
cout<<averageEven(n)<<endl;
return 0;
}
|
C
#include <stdio.h>
int averageEven( int n)
{
if (n % 2 != 0) {
printf ( "Invalid Input" );
return -1;
}
return (n + 2) / 2;
}
int main()
{
int n = 16;
printf ( "%d" , averageEven(n));
return 0;
}
|
Java
import java.io.*;
class GFG {
static int averageEven( int n)
{
if (n % 2 != 0 ) {
System.out.println( "Invalid Input" );
return - 1 ;
}
return (n + 2 ) / 2 ;
}
public static void main(String args[])
{
int n = 16 ;
System.out.println(averageEven(n));
}
}
|
Python3
def averageEven(n) :
if (n % 2 ! = 0 ) :
print ( "Invalid Input" )
return - 1
return (n + 2 ) / / 2
n = 16
print (averageEven(n))
|
C#
using System;
class GFG {
static int averageEven( int n)
{
if (n % 2 != 0) {
Console.Write( "Invalid Input" );
return -1;
}
return (n + 2) / 2;
}
public static void Main()
{
int n = 16;
Console.Write(averageEven(n));
}
}
|
PHP
<?php
function averageEven( $n )
{
if ( $n % 2 != 0)
{
echo ( "Invalid Input" );
return -1;
}
return ( $n + 2) / 2;
}
$n = 16;
echo (averageEven( $n ));
return 0;
?>
|
Javascript
<script>
function averageEven( n)
{
if (n % 2 != 0)
{
document.write( "Invalid Input" );
return -1;
}
return (n + 2) / 2;
}
let n = 16;
document.write(averageEven(n));
</script>
|
Output :
9
Time complexity: O(1) since performing constant operations
Space Complexity: O(1) since using constant variables
Share your thoughts in the comments
Please Login to comment...