Моля да ми помогнете по информатика с една задача:
Да се състави програма, която въвежда от клавиатурата цяло положително четирицифрено число. Програмата да извежда сумата и произведението от цифрите на числото.
Примерен вход:1234 Примерен изход:10 24
Примерен вход:2508 Примерен изход:15 0
Моляяя Ви, помагайте ии ако някой я реши моля да обясни как го е направил.. :)
мога да ти е реша :D ти с какво можеш да ми помогнеш :-D
Емии не знамм. Какво искаш? :D
по английски добра ли си? трябва ми да напиша едно кратко съчинение?
Моля да ми помогнете по информатика с една задача:
Да се състави програма, която въвежда от клавиатурата цяло положително четирицифрено число. Програмата да извежда сумата и произведението от цифрите на числото.
Примерен вход:1234 Примерен изход:10 24
Примерен вход:2508 Примерен изход:15 0
Моляяя Ви, помагайте ии ако някой я реши моля да обясни как го е направил.. :)
Не знам на какъв език е, ще карам на С++
#include <iostream>
using namespace std;
int main()
{
int n, s, p;
cout<<"Vuvedete chetiricifreno chislo n="; cin>>n;
while (n<1000 || n>9999)
{
cout<<"\nVuvedete chetiricifreno chislo!!";
cout<<"\nn="; cin>>n;
}
s=0; p=1;
while (n!=0)
{
s+=n%10;
p*=n%10;
n/=10;
}
cout<<"\n"<<s<<" "<<p;
std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
std::cin.get();
return 0;
}
Идеята е следната:
Въвеждаме число n.
След това проверяваме дали числото е между 1000 и 9999 (положително четирицифрено). Ако не е, питаме за повторно въвеждане, докато не се въведе такова. Това го постигаме чрез първия while.
Нулираме сумата и произведението (s=0 първоначално, а р=1 първоначално, защото ако беше 0, винаги щеше да си остава нула, по каквото и да го умножим). След това ще вадим цифрите и на всяка стъпка ще прибавяме извадената в сумата и ще умножаваме с нея произведението. Така докато не свършат цифрите.
Как вадим цифри? Като раделим n по модул 10 (връща остатакът от деление на 10), лесно се забелязва, че ни дава последната цифра. Ето например 1394 : 10 = 139 и остатък 4. По този начин, ползвайки n%10, получаваме последната. Въпросът е, като сме я получили, как да преминем към следващата. Като разделим с целочислено деление на 10, всъщност получаваме числото без последната цифра. Защо? да проверим отново с 1394:10 = 139 и остатък 4, но целочисленото деление не запазва остатъкът и всъщност имаме 1394/10 = 139. Така n/=10 ни дава числото без последната цифра. Повтаряме тези две стъпки (запазване на остатък и премахване на цифра), докато не свършат цифрите. Тогава s и p ще са придобили търсените стойности.
std::cin.ignore(std::numeric_limits<streamsize>::max(), '\n');
std::cin.get();
Тези редове просто казват на програмата да изчака да цъкнеш enter, преди да се затвори, за да можеш да видиш резултата.
Амии попринцип трябва на Visual Basic, това дали ще стане? Иначе мерси много! :)