niksuncho
11-27-2011, 17:25
някой може ли да ми помогне с тази задача:
Да се състави програма,която намира и извежда всички трицифрени числа,които при премахване на средната цифра да се делят на 3 без остатък.
Трябва да я съставя с while ,но ми е трудна,така че който може да помогне ще съм му много благодарна :))
Като искате задачи по информатика, казвайте на какъв език искате да се пишат!
Идея на задачата:
Взимаме си едно число i, което ще се мени от 100 до 999 (тук ползваме цикълът while). На всяка стъпка ще проверяваме дали първата+последната цифра се делят на 3 (което е условието за едно двуцифрено число да се дели на 3) и ако да - изписваме числото i на екрана.
Единствено остава да измислим как да премахваме средната цифра.
Числото i разделено на 10 дава остатък - последната цифра.
Числото i, след като го разделим на 100 дава първата цифра.
Като съберем тези двете и ги разделим на 3, получваме остатък 0, 1 или 2. Ако е 0, значи числото се дели на 3.
Ето я написана на С++:
#include <iostream>
using namespace std;
int main()
{
int i;
i=100;
while (i<1000)
{
if ((i%10 + (i/100)) % 3 == 0) //Proverqvame dali sborut se deli na 3
cout<<i<<endl; //Izpisvame chisloto, v slu4ai 4e se deli na 3
i++; //Preminavame na sledva6toto 3-cifreno 4islo
}
cin>>i; //Chetem chisloto i, samo za da ne se zatvori prozoreca
return 0;
}