Сумата от цифрите да е X

Да се напише програма, която извежда всички числа в интервала (1..1000), сумата от цифрите на които е равна на X

Публикувано в 11а, 11в с етикети . Постоянна връзка.

4 Responses to Сумата от цифрите да е X

  1. Gadget каза:
     
    int x,tzifra,chislo,suma=0;
        cout<<"Vavedete X: ";
        cin>>x;
        for(int i=1;i<=1000;i++){
            chislo=i;            
            while(chislo!=0){
            tzifra=chislo%10;
            suma+=tzifra;
            chislo/=10;
        }
        if(suma==x)
        cout<<i<<" ";
        suma=0;
       }
       cout<<endl;
    
    • Данаил каза:

      Така както си сложил инициализирането на сумата след всичко друго, първоначално ме заблуди че липсва. И форматирането е малко подвеждащо – фигурната скоба пред if трябва да е под while, а не под for – за да показва коя крайна скоба с коя начална е. Ако изключим това – вярно, както винаги :-)

  2. dreanor каза:
    using namespace std;
     
    int main(int argc, char *argv[])
    {
        bool lqwo=true,sum=false;
    	int suma;
    	cout<<"Wuwedete suma na cifrite ";
    	cin>>suma;
    	if ((suma>=1)&&(suma<=27)) //няма нужда да се изпълнява цикъла ако няма да изведе резултат
    	{
    		if (suma<=18) //проверка дали има двуцифрени с дадена сума
    		{
    			if(suma<9) cout<<suma<<endl;
    			for(int e=1;e<=9;e++)
    				for(int d=0;d<=9;d++)
    					if ((e+d)==suma)
    						cout<<e<<d<<endl;
    		}
    		for (int i=1;i<=9;i++)
    			for (int p=0;p<=9;p++)
    				for (int t=0;t<=9;t++)
    					if ((i+p+t)==suma)
    						cout<<i<<p<<t<<endl;					              				
    	}
    	else cout<<"Nqma takiwa chisla ot 1 do 1000\n";
    	cout<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

Вашият коментар