T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 82
Reģistrētie lietotāji online: 0
Viesi online: 82
Čau visiem.
Vārdu sakot - uzreiz vērsim pie ragiem.
Palīdziet man lūdzu saprast ko no manis grib.
Tātad: "Doti divi naturāli skaitļi m un n. Noteikt skaitļa m pēdējo n ciparu summu."
Galīgi nesaprotu domu šim uzdevumam. Paldies jau iepriekš.
PS. Jāprogrammē ir iekš C++, bet lai sāktu kaut ko darīt ir jāsaprot uzdevums, kas man galīgi nesanāk.
Patiesībā viss ir ļoti vienkārši.
doti 2 skaitļi (naturāli = pozitīvi un vesali), piemēram n = 3321 un m = 2345
n un m pēdējo ciparu summa ir 1+5 = 6
Eric rakstīja:
Patiesībā viss ir ļoti vienkārši.
doti 2 skaitļi (naturāli = pozitīvi un vesali), piemēram n = 3321 un m = 2345
n un m pēdējo ciparu summa ir 1+5 = 6
skaitļa m pēdējo n ciparu summu
Nav viss, kā tu saki
Tad kurš variants ir pareizais #1 vai #2?
Eric domu es sapratu, bet bronzer domu gan nē.
Edit: bronzer doma arī aizleca, respektīvi, ja es ievadu m=123456789 un n=4, tad tas nozīmē, ka pēc ievadītā n es atlasu tik daudz pēdējos skaitļus no m cik ir rakstīts n. Tātad summa = 9+8+7+6.
Pareizi?
Pārveido skaitli uz string, tālāk nosaki garumu, sadali pa skaitliem, pārveido uz integer.
int m = 123456, n = 3, sum = 0;
for (int i = 1; i < n; i++)
{
sum += m%10;
m /= 10;
}
Rakstu uz dullo
[edit] Kā te ir [code] tagi?
bronzer rakstīja:
int m = 123456, n = 3, sum = 0;
for (int i = 1; i < n; i++)
{
sum += m%10;
m /= 10;
}
Rakstu uz dullo
[edit] Kā te ir [code] tagi?
Tas aprēķina visu skaitļu summu un tas neder, esmu ticis pagaidām tik tālu:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int m,n, ;
int skaits;
int sum=0;
cout << "Ievadi m:";
cout << endl;
cin >> m;
cout << "Ievadi n:";
cout << endl;
cin >> n;
cout << endl;
while (m > 0) {
sum =sum + m%10;
m /= 10;
}
cout << sum;
cout << endl;
system ("pause");
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int m,n,sum = 0;
cout << "Ievadiet M: ";
cin >> m;
cout << "Ievadien N: ";
cin >> n;
for (; n != 0; n--)
{
sum += m%10;
m /= 10;
}
cout << "Summa: " << sum << "\n";
system("pause");
return 0;
}
100% strādā
bronzer rakstīja:
100% strādā
Tiešām strādā. Liels paldies.
Vari lūdzu paskaidrot kā cikls for darbojas šajā piemērā?
Cikla pirmajā solī vērtība netiek uzstādīta, nākamajā cikla solī ar loģiskas izteiksmes palīdzību tiek pārbaudīts vai ievadītais n nav 0 un cikls darbojas tik ilgi kamēr nosacījums ir patiess(ar to es domāju, ka katru reizi ejot cauri ciklam tiek pārbaudīta n vērtība), tas ir, kamēr n ir 0. Doma vismaz man ir pareiza?
Un vēl viens jautājums, kā programma "saprot" to, ka jāskaita ir pēdējie skaitļi no ievadītā M nevis pirmie? Šķiet ka teorijā tā bija, ka darbības tiek veiktas skatoties no labās puses, jeb es kļūdos...
#11: Sāc ar pamatiem - C++ operatori ;)
% - atlikums no dalījuma. m%10 - atlikums no dalījuma ar 10, kas 10-nieku skaitīšanas sistēmā vienmēr būs viens, pēdējais cipars.
Jebkurā gadījumā, piemēra jau redzu loģisko bugu. Es rakstītu tā:
while (n-- > 0)
{
...
}
vai vēl pareizāk:
while (n-- > 0 && m)
Kāpēc, domā pats. Ja kas, for ir smagāks par while un šajā gadījumā tā ir lieka izšķērdība.
m
Doti divi naturāli skaitļi m un n. Noteikt skaitļa m pirmo n ciparu summu.
kā lai to dabū gatavu? to var izdarīt nelietojot masīvus? mēģināju šo pašu pārveidot, nekas gudrs nesanāca.
Divi varianti:
a) pārveido m uz stringu, izkopē n simbolus no kreisās puses, saskaiti summu. Risinājums vidusskolai derēs, bet reālai dzīvei - ne visai, jo pārveidošana uz string ir ievērojami lēnāka par tīru aritmētiku.
b) atceries matemātiku (logaritmus). Apmēram šādi:
long cipari, sum, m, n;
cin >> m;
cin >> n;
//sarēķinam, cik ciparu skaitlī. Matemātika 10.-12.klasei.
cipari = (long)log10((double)m) + 1;
//ignorējam nevajadzīgos
while (cipari-- > n)
{
m /= 10;
}
//skaitam summu no atlikušajiem
sum = 0;
while (m)
{
sum += m % 10;
m /= 10;
}
cout << sum;
Protams, var risināt arī savādāk, bet neko elegantāku ātrumā neizdomāju.
EDIT: atvainojos par formatējumu, [code] tagu te, protams, nav. :(
vēl viens jautājums. kā panākt, lai programma normāli atkārtojās? man no programmas neiziet kad spiežu atkārtot, bet rakstīt arī vairs neko neļauj. kāpēc?
m=12345678
n=3
summa = 8+7+6