给定一个整数n,任务是确定n是否可以表示为五个连续整数的和。如果是,则找到五个连续的整数,否则打印“ -1”。
例子:
Input : n = 15
Output : 1 2 3 4 5
15 = 1 + 2 + 3 + 4 + 5
Input : n = 18
Output : -1
方法1 :(强力)
想法是运行从i = 0到n – 4的循环,检查(i + i + 1 + i + 2 + i + 3 + i + 4)是否等于n。另外,请检查n是否为正数或负数,并相应地使i增加或减少1。
以下是此方法的实现:
C++
// CPP Program to check if a number can
// be expressed as sum of five consecutive
// integers.
#include
using namespace std;
// function to check if a number can be expressed as
// sum of five consecutive integers.
void checksum(int n)
{
// if n is 0
if (n == 0) {
cout << "-2 -1 0 1 2" << endl;
return;
}
int inc;
// if n is positive, increment loop by 1.
if (n > 0)
inc = 1;
// if n is negative, decrement loop by 1.
else
inc = -1;
// Running loop from 0 to n - 4
for (int i = 0; i <= n - 4; i += inc) {
// check if sum of five consecutive
// integer is equal to n.
if (i + i + 1 + i + 2 + i + 3 + i + 4 == n) {
cout << i << " " << i + 1
<< " " << i + 2
<< " " << i + 3
<< " " << i + 4;
return;
}
}
cout << "-1";
}
// Driver Program
int main()
{
int n = 15;
checksum(n);
return 0;
}
Java
// Java Program to check if a number can
// be expressed as sum of five consecutive
// integers.
import java.io.*;
class GFG {
// function to check if a number can be
// expressed as sum of five consecutive
// integers.
static void checksum(int n)
{
// if n is 0
if (n == 0) {
System.out.println("-2 -1 0 1 2");
return;
}
int inc;
// if n is positive, increment loop by 1.
if (n > 0)
inc = 1;
// if n is negative, decrement loop by 1.
else
inc = -1;
// Running loop from 0 to n - 4
for (int i = 0; i <= n - 4; i += inc) {
// check if sum of five consecutive
// integer is equal to n.
if (i + i + 1 + i + 2 + i + 3 + i
+ 4 == n)
{
System.out.print( (i )
+ " " + (i + 1)
+ " " + (i + 2)
+ " " + (i + 3)
+ " " + (i + 4));
return;
}
}
System.out.println( "-1");
}
// Driver Program
public static void main (String[] args)
{
int n = 15;
checksum(n);
}
}
// This code is contributed by anuj_67
Python3
# Python3 code to check if a number
# can be expressed as sum of five
# consecutive integers.
# function to check if a number
# can be expressed as sum of five
# consecutive integer.
def checksum(n):
# if n is 0
if n == 0:
print("-2 -1 0 1 2")
return 0
inc = 0
# if n is positive,
# increment loop by 1.
if n > 0:
inc = 1
# if n is negative,
# decrement loop by 1.
else:
inc = -1
# Running loop from 0 to n - 4
for i in range(0, n-3, inc):
# check if sum of five consecutive
# integer is equal to n.
if i + i + 1 + i + 2 + i + 3 + i + 4 == n:
print(i, " ", i + 1, " ", i + 2, " ", i + 3, " ", i + 4)
return 0
print("-1")
# Driver Code
n = 15
checksum(n)
C#
// C# Program to check if a number can
// be expressed as sum of five consecutive
// integers.
using System;
class GFG {
// function to check if a number can be
// expressed as sum of five consecutive
// integers.
static void checksum(int n)
{
// if n is 0
if (n == 0) {
Console.Write("-2 -1 0 1 2");
return;
}
int inc;
// if n is positive, increment loop by 1.
if (n > 0)
inc = 1;
// if n is negative, decrement loop by 1.
else
inc = -1;
// Running loop from 0 to n - 4
for (int i = 0; i <= n - 4; i += inc) {
// check if sum of five consecutive
// integer is equal to n.
if (i + i + 1 + i + 2 + i + 3 + i
+ 4 == n)
{
Console.Write( (i )
+ " " + (i + 1)
+ " " + (i + 2)
+ " " + (i + 3)
+ " " + (i + 4));
return;
}
}
Console.WriteLine( "-1");
}
// Driver Program
public static void Main ()
{
int n = 15;
checksum(n);
}
}
// This code is contributed by anuj_67
PHP
0)
$inc = 1;
// if n is negative,
// decrement loop by 1.
else
$inc = -1;
// Running loop from
// 0 to n - 4
for ($i = 0;
$i <= $n - 4; $i += $inc)
{
// check if sum of five
// consecutive integer
// is equal to n.
if ($i + $i + 1 + $i + 2 +
$i + 3 + $i + 4 == $n)
{
echo $i , " " , $i + 1,
" " , $i + 2,
" " , $i + 3,
" " , $i + 4;
return;
}
}
echo "-1";
}
// Driver Code
$n = 15;
checksum($n);
// This code is contributed
// by ajit
?>
Javascript
C++
// CPP Program to check if a number can be
// expressed as sum of five consecutive integer.
#include
using namespace std;
// function to check if a number can be
// expressed as sum of five consecutive
// integers.
void checksum(int n)
{
// if n is multiple of 5
if (n % 5 == 0)
cout << n / 5 - 2 << " "
<< n / 5 - 1 << " " << n / 5
<< " " << n / 5 + 1 << " "
<< n / 5 + 2;
// else print "-1".
else
cout << "-1";
}
// Driver Program
int main()
{
int n = 15;
checksum(n);
return 0;
}
Java
// Java Program to check if a number can
// be expressed as sum of five consecutive
// integer.
import java.io.*;
class GFG {
// function to check if a number can
// be expressed as sum of five
// consecutive integers.
static void checksum(int n)
{
// if n is multiple of 5
if (n % 5 == 0)
System.out.println( (n / 5 - 2)
+ " " + (n / 5 - 1) + " "
+ (n / 5) + " " + (n / 5
+ 1 ) + " " + (n / 5 + 2));
// else print "-1".
else
System.out.println( "-1");
}
// Driver Program
public static void main (String[] args)
{
int n = 15;
checksum(n);
}
}
// This code is contributed by vt_m.
Python3
# Python3 code to check if a number
# can be expressed as sum of five
# consecutive integer.
# function to check if a number
# can be expressed as sum of five
# consecutive integers.
def checksum(n):
n = int(n)
# if n is multiple of 5
if n % 5 == 0:
print(int(n / 5 - 2), " ",
int(n / 5 - 1), " ", int(n / 5), " ", int(n / 5 + 1), " ", int(n / 5 + 2))
# else print "-1".
else:
print("-1")
# Driver Code
n = 15
checksum(n)
C#
// C# Program to check if a number can
// be expressed as sum of five consecutive
// integer.
using System;
class GFG {
// function to check if a number can
// be expressed as sum of five
// consecutive integers.
static void checksum(int n)
{
// if n is multiple of 5
if (n % 5 == 0)
Console.WriteLine( (n / 5 - 2)
+ " " + (n / 5 - 1) + " "
+ (n / 5) + " " + (n / 5
+ 1 ) + " " + (n / 5 + 2));
// else print "-1".
else
Console.WriteLine( "-1");
}
// Driver Program
public static void Main ()
{
int n = 15;
checksum(n);
}
}
// This code is contributed by anuj_67.
PHP
Javascript
输出 :
1 2 3 4 5
方法2 :(有效方法)
想法是检查n是否为5的倍数。
令n为k – 2,k-1,k,k + 1,k + 2的五个连续整数之和。所以,
k-2 + k-1 + k + k + 1 + k + 2 = n
5 * k = n
这五个数字将为n / 5 – 2,n / 5 – 1,n / 5,n / 5 + 1,n / 5 + 2。以下是此方法的实现:
C++
// CPP Program to check if a number can be
// expressed as sum of five consecutive integer.
#include
using namespace std;
// function to check if a number can be
// expressed as sum of five consecutive
// integers.
void checksum(int n)
{
// if n is multiple of 5
if (n % 5 == 0)
cout << n / 5 - 2 << " "
<< n / 5 - 1 << " " << n / 5
<< " " << n / 5 + 1 << " "
<< n / 5 + 2;
// else print "-1".
else
cout << "-1";
}
// Driver Program
int main()
{
int n = 15;
checksum(n);
return 0;
}
Java
// Java Program to check if a number can
// be expressed as sum of five consecutive
// integer.
import java.io.*;
class GFG {
// function to check if a number can
// be expressed as sum of five
// consecutive integers.
static void checksum(int n)
{
// if n is multiple of 5
if (n % 5 == 0)
System.out.println( (n / 5 - 2)
+ " " + (n / 5 - 1) + " "
+ (n / 5) + " " + (n / 5
+ 1 ) + " " + (n / 5 + 2));
// else print "-1".
else
System.out.println( "-1");
}
// Driver Program
public static void main (String[] args)
{
int n = 15;
checksum(n);
}
}
// This code is contributed by vt_m.
Python3
# Python3 code to check if a number
# can be expressed as sum of five
# consecutive integer.
# function to check if a number
# can be expressed as sum of five
# consecutive integers.
def checksum(n):
n = int(n)
# if n is multiple of 5
if n % 5 == 0:
print(int(n / 5 - 2), " ",
int(n / 5 - 1), " ", int(n / 5), " ", int(n / 5 + 1), " ", int(n / 5 + 2))
# else print "-1".
else:
print("-1")
# Driver Code
n = 15
checksum(n)
C#
// C# Program to check if a number can
// be expressed as sum of five consecutive
// integer.
using System;
class GFG {
// function to check if a number can
// be expressed as sum of five
// consecutive integers.
static void checksum(int n)
{
// if n is multiple of 5
if (n % 5 == 0)
Console.WriteLine( (n / 5 - 2)
+ " " + (n / 5 - 1) + " "
+ (n / 5) + " " + (n / 5
+ 1 ) + " " + (n / 5 + 2));
// else print "-1".
else
Console.WriteLine( "-1");
}
// Driver Program
public static void Main ()
{
int n = 15;
checksum(n);
}
}
// This code is contributed by anuj_67.
的PHP
Java脚本
输出:
1 2 3 4 5