Помощ с едни задачки |
||||
|
||||
|
|
||||
![]() ![]() |
От скоро се занимавам с С++ (в училище) и нещата въобще не са ми ясни.Трябва да направя 2 задачи, които сигурно са лесни, но предвид възможностите си имам нужда от помощ.
Едно естествено число е съвършено, ако е равно на сумата от своите делители (без самото число). Например, 6 е съвършено, защото 6 = 1+2+3. Да се напише програма, която намира всички съвършени числа ненадминаващи дадено естествено число n. #include <iostream.h> int main() {cout <<"n="; int n; cin>>n; if(!cin) {cout<<"error\n"; return 1;} int s=0; for(int i=1;i<=n;i++) if(n%i==0) s=s+1; cout<<"s="<<s<<"\n"; return 0; } Направих това,но то смята броя на делители, не сумата им. Другата задача е:Да се напише програма, която намира всички цели числа от интервала [m, n], в записа на които участва цифрата 5 (m и n са дадени естествени числа, m < n). #include <iostream.h> int main() {cout <<"n="; int n; cin>>n; if(!cin) {cout<<"error\n"; return 1;} cout <<"m="; int m; cin>>m; if(!cin) {cout<<"error\n"; return 1;} int s=0; int a=m,q=a,b,c; for(q=m;q<=n;q++) while((b==5)||(m<n)) {b=q%10; c=q/10; a=a+1; s=s+1;} cout<<"s="<<s<<"\n"; return 0; } По нея съм направила това.Но и тя не излиза |
|||
|
---------------------------
Потребител от: 26.05.08 | Всички уроци от ubeto | Всички скриптове от ubeto |
||||
|
|
||||
|
||||
|
|
||||
![]() ![]() ![]() |
Цитат от ubeto@09.06.2008 20:41: #include <iostream.h>int main() {cout <<"n="; int n; cin>>n; if(!cin) {cout<<"error\n"; return 1;} int s=0; for(int i=1;i<=n;i++) if(n%i==0) s=s+1; cout<<"s="<<s<<"\n"; return 0; } Направих това,но то смята броя на делители, не сумата им. s = s + 1; напиши s = s + i; така s накрая ще ти е сумата от делителите и ще ти изведе сумата, прибави едно условие ако n = s да извежда че е съваршено ![]() |
|||
|
---------------------------
Потребител от: 12.04.08 | Всички уроци от mrhellish | Всички скриптове от mrhellish MrHellish™ |
||||
|
|
||||
|
|
||||
![]() ![]() |
Освен това цикълът ви включва и самото число n, а то по условие се изключва. Също по условие трябва да се изведат всички съвършени числа до n, а не да се проверява само въведеното число дали е съвършено. И накрая - цикълът трябва да се върти до n / 2, няма смисъл за повече:
CODE
|
|||
|
---------------------------
Потребител от: 15.01.08 | Всички уроци от gomaker | Всички скриптове от gomaker |
||||
|
|
||||
|
|
||||
![]() ![]() |
Втората задача:
CODE
|
|||
|
---------------------------
Потребител от: 15.01.08 | Всички уроци от gomaker | Всички скриптове от gomaker |
||||
|
|
||||
|
|
||||
![]() ![]() |
Благодаря много.
Само да попитам, какво означава " int main( int argc, char *argv[] )" , защото попринцип знам че се пише само "int main()" |
|||
|
---------------------------
Потребител от: 26.05.08 | Всички уроци от ubeto | Всички скриптове от ubeto |
||||
|
|
||||
|
|
||||
![]() ![]() |
Не че знам C++ но колкото виждам това БИ трябвало да подава на main функцията някакви параметри
|
|||
|
---------------------------
Потребител от: 20.12.06 | Всички уроци от zipopro | Всички скриптове от zipopro Лъчезар Петров Лечев - 14 - Стара Загора - Уеб Програмист Винчета, болчета гайкии...! |
||||
|
|
||||
|
|
||||
![]() ![]() ![]() |
Да параметри са
когато се пише само int main() функцията няма параметри ,а имам въпрос към @ubeto:"Значи те не трябва да ти надминават дадено естествено число n,ти си го определяш,кое е най голямото естествено число n с което можеш да пуснеш програмата без да има проблем" |
|||
|
Това мнение е редактирано от zaikoni на 10.06.2008 20:18
---------------------------
Потребител от: 30.01.08 | Всички уроци от zaikoni | Всички скриптове от zaikoni Човекът,който знае KAK,винаги ще има работа.Човекът който знае ЗАЩО,винаги ще бъде негов ШЕФ. " |
||||
|
|
||||
|
|
||||
![]() ![]() ![]() |
Първата задачка е интересна от гледна точка на възможните оптимизации. Т.е държи на бой и "разпаралеляване". Решението ползва технологията OpenMP. Може някой компилатори да не я поддържат. CODE
|
|||
|
|
||||
|
|
||||
|
|
||||
![]() ![]() |
Цитат от zaikoni@10.06.2008 20:14: Да параметри са когато се пише само int main() функцията няма параметри ,а имам въпрос към @ubeto:"Значи те не трябва да ти надминават дадено естествено число n,ти си го определяш,кое е най голямото естествено число n с което можеш да пуснеш програмата без да има проблем" Да точно така. Което и число да въведеш, трябва да го проверява. |
|||
|
---------------------------
Потребител от: 26.05.08 | Всички уроци от ubeto | Всички скриптове от ubeto |
||||
|
|
||||
| 1 посетител чете тази тема (0 потребители и 1 гост) | |||
|
Активни потребители:
---
|
|||
| |||
Още по темата:
php форум,
форум компютри,
flash форум,
html форум,
it форум,
seo форум,
vista форум,
pc форум,
css форум,
java форум,
mysql форум

















