Soru
Programcıdan n’inci terim de dahil olmak üzere, 0’dan n’ye kadar olan sayıların toplamını diziye aktaran bir uygulama yazması isteniyor. Negatif sayının negatif, pozitif sayınınsa pozitif bir dizide olması gerektiği not düşülüyor.
Örnek
Girdi | Çıktı |
---|---|
n: 5 | sonuc: 0, 1, 3, 6, 10, 15 |
n: -7 | sonuc: 0, -1, -3, -6, -10, -15, -21, -28 |
Çözüm - C#
using System;
using System.Collections.Generic;
namespace CodingChallenges
{
public class Program
{
public static void Main()
{
int nDegeri = -5;
// Sınır değerini, yani döngünün kaçıncı sayıya kadar olacağını belirle
int sinir = Math.Abs(nDegeri) + 1;
List<int> dizi = new List<int>();
// Mevcut işarete göre işlem yap
bool pozitifMi = Math.Sign(nDegeri) > 0;
// N'ye kadar devam et
for (int i = 1; i <= sinir; i++)
{
int toplam = 0;
for (int j = 0; j < i; j++)
{
// Sayının değerine göre pozitif veya negatif toplam yap
if (pozitifMi)
toplam += j;
else
toplam -= j;
}
// Toplamı diziye ekle
dizi.Add(toplam);
}
Console.WriteLine(string.Join(" ", dizi));
Console.Read();
}
}
}
Çözüm - Python
import math
nDegeri = 5
# Sınır değerini, yani döngünün kaçıncı sayıya kadar olacağını belirle
sinir = math.fabs(nDegeri) + 1
dizi = []
# Mevcut işarete göre işlem yap
pozitifMi = nDegeri > 0
# N'ye kadar devam et
for i in range(1, int(sinir) + 1):
toplam = 0
for j in range(i):
# Sayının değerine göre pozitif veya negatif toplam yap
if pozitifMi:
toplam += j
else:
toplam -= j
# Toplamı diziye ekle
dizi.append(toplam)
print(dizi)