Program v C#
5 naročnikov
5 naročnikov
Napiši program, ki vsebuje funkcijo, ki izpiše vsa števila med 0 in 1000, katerih vsota števk je enaka številu, ki nastopa kot parameter te funkcije.
bi znal kdo to ?
13 odgovorov
Kje je pa problem? Naredis zanko, ki veca nek stevec od 0 do 1000, za vsako stevilo sesteje cifre, preveri ce je njihova vsota enaka zahtevanemu stevilu in to vrednost stevca izpise.
Ledi:
vini: problem je v njegovi lenobi
nokaut240: ja večina tukaj nas zna to naredit :D
Ni problem v lenobi, problem je v tem, da sem šele začetnik in se šele učim nekatere zadeve.
Vem, vendar če veš, kaj je for zanka, še nisi odkril sveta. Ukaz for(int x=0; x<1000; x++) je začetek tistega, kar je treba naredit, naprej je pa že bolj zakomplicirano, pametnjakoviči.
No pa funkcijo verjetno tudi znaš napisati, takšno z enim parametrom... potem pa znotraj for zanke za vsak x preverjaš če je vsota števk števila x enaka številu, ki je podano kot parameter funkcije ...
Da x razbiješ na števke pa imaš več možnosti... lahko pocaš gor pa dol pa deliš z 10 in uporabljaš floor() ali kar pač je namesto tega v C# (jaz ne vem :) ) ali pa ... seštevaš ostanke pri deljeno z 10 (x%10 v javi recimo) v še eni for zanki, dokler je število ni enako 0 ...
recimo ko je x = 234
234 / 10 = 23 + 4 (ostanek)
23 / 10 = 2 + 3
2 / 10 = 0 + 2
pa sešteješ ostanke if 4 + 3 + 2 je deljivo z številom, ki je podano kot parameter funkcije, in v primeru true izpišeš število ...
nokaut240, to, da si zacetnik je blazno pripraven izgovor za to da si len :) for zanka, sestevanje cifer in primerjanje stevil med seboj je nekaj tako osnovnega, da brez tega ne bos znal nic drugega, malo se potrudi...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//kreiramo spremenljivko vsota, določimo začetno vrednost
int vsota = 0;
int stevilo = 0;
Console.WriteLine("Vnesi število: ");
int a = Convert.ToInt32(Console.Read());
//zanka teče dokler ne pridemo s števili do 1000
while (stevilo < 1000)
{
int zankanoStevilo = stevilo;
//zanka teče dokler ne zmanjka števk
while (zankanoStevilo > 0)
{
int posameznaStevka = zankanoStevilo % 10;
zankanoStevilo = zankanoStevilo / 10;
vsota = vsota + posameznaStevka;
}
//če je vsota števk enaka vnosu ga izpišemo
if (vsota == a)
{
Console.Write(stevilo + " ");
}
vsota = 0;
stevilo++;
}
}
}
}
Kje je napaka ?