eMatematikas Paieška

C++ Ciklai ir funkcijos (while,for)

Informatika Peržiūrų skaičius (105)

Duotas natūraliųjų skaičių intervalas [m, n]. Parašykite programą, kuri atspausdintų tuos
intervalo skaičius, kurių pirmą skaitmenį nubraukus, būtų gaunamas pradinio skaičiaus daliklis.
Programoje parašykite ir panaudokite funkciją, kuri „nubraukia“ duotojo skaičiaus pirmą
skaitmenį.
Pasitikrinimui: [92; 120 ]: 92; 93; 95; 96; 99; 101; 102; 104; 105; 110; 120

Mano bandymas:

#include <iostream>
using namespace std;

int nubraukia (int a)
{
int z=1,b,x=0;
while (a>9)
{
b=a%10;
if(b!=0) x+=b*z;
z*=10;
a/=10;
}
return x;
}

int main()
{
int i,m,n;
cout<<"Ivesk intervala [m;n] \n";
cin>>m>>n;
for(i=m;i<=n;i++)
{
if(i%nubraukia(i)==0) cout<<i<<" ";
}


return 0;
}

Jeigu parašai intervalą [92;120] atspausdina 92; 93; 95; 96; 99; (tik dviženklius skaičius)
Kur yra padaryta klaida ?

0

Teisingai parašyta programa atrodo taip:

#include <iostream>
using namespace std;

int nubraukia (int a)
{
int z=1,b,x=0;
while (a>9)
{
b=a%10;
if(b!=0) x+=b*z;
z*=10;
a/=10;
}
return x;
}

int main()
{
int i,m,n,y;
cout<<"Ivesk intervala [m;n] \n";
cin>>m>>n;
for(i=m;i<=n;i++)
{
y=nubraukia(i);
if(y!=0 and i%y==0) cout<<i<<" ";

}


return 0;
}

0

Norėdami rašyti žinutes privalote prisijungti!