Брой и сума на цифри на число

Да се напишат рекурсивни функции, които:

  1. отпечатват сумата от цифрите на числото
  2. отпечатва броят на цифрите на числото
Публикувано в 12а, 12в с етикети . Постоянна връзка.

13 коментара по Брой и сума на цифри на число

  1. krisizdravi95 каза:
    
    
    using namespace std;
    
    int sum(int a)
    {   int suma=0;
        if(a<10)
       return a;
       else return suma=a%10+sum(a/10);
    } 
    
        
        
    int main(int argc, char *argv[])
    {
        int b;
        cout<<"Vuvedete chislo: \n";
        cin>>b;
        cout<<"Sumata e "<<sum(b)<<endl;
    
    
  2. marant каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
      
    int suma(int chislo){
        int result;
            if (chislo<10)
             result=chislo;
        else {
        int cifra = chislo%10;
             result=cifra + suma(chislo/10);
      }
      return result;
    }
    int main(int argc, char *argv[]) {
      int chislo;
      cout<<"vavedete chislo: ";
      cin>>chislo;
      cout<<suma(chislo);
      
       system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  3. Gadget каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int suma(int sum,int chislo){    
        if(chislo>0)
         return suma(sum=sum+(chislo%10),chislo/10);
        else
         return sum;   
    }
    
    int broi(int chislo,int n){    
        if(chislo>0)
         return broi(chislo/10,n=n+1);
        else
         return n;   
    }
    
    int main(int argc, char *argv[])
    {
        int chislo,sum=0,n=0;
        cout<<"Vavedi chislo ";
        cin>>chislo;
        
        cout<<"Sumata e: "<< suma(sum,chislo)<<endl;
        
        cout<<"Broiat e: "<<broi(chislo,n)<<endl;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  4. dreanor каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int printsum(int a)
    {
        if (a<10)
            return a;
        else
            return a%10 + printsum(a/10);
    }
    
    int cifri(int a)
    {
        if (a<10)
            return 1;
        else
            return 1+cifri(a/10);
    }
        
    int main(int argc, char *argv[])
    {
        int a;
        cin>>a;
        cout<<"Sumata e: "<<printsum(a)<<endl;
        cout<<"Broqt cifri na chisloto e: "<<cifri(a)<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Може и по-кратко :)

  5. krisizdravi95 каза:
    
    using namespace std;
    
    int sum(int a)
    {
        if(a<10)
        return a;
        else return a%10+sum(a/10);
    }
    
    int broi(int a)
    { if(a<10)
      return 1;
      else return 1+broi(a/10);
    }
    
    int main(int argc, char *argv[])
    {
        int b;
        cout<<"Vuvedete chislo:\n";
        cin>>b;
        cout<<"Sumata ot cifrite e "<<sum(b)<<endl;
        cout<<"Broqt na cifrite e "<<broi(b)<<endl;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    
    

    Напълно ненужна е била променливата забелязвам. Мисля, че сега е максимално опростена и заедно с второто подусловие :)
    Криси

  6. krisizdravi95 каза:
    using namespace std;
    int sum(int a)
    {   int suma=0;
        if(a<10)
       return a;
       else return suma=a%10+sum(a/10);
    }
     int broi(int c)
     { int br=0;
     if(c<10)
     return 1;
      else return br=1+broi(c/10);
    }
         
         
    int main(int argc, char *argv[])
    {
        int b;
        cout<<"Vuvedete chislo: \n";
        cin>>b;
        cout<<"Sumata e: "<<sum(b)<<endl;
        cout<<"Broqt e : "<<broi(b)<<endl;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Zdravena :)

  7. kr1stiqn1995 каза:
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
     
    int suma(int sum,int chislo){ // функция от целочислен тип с параметрпи СУМА и ЧИСЛО от целочислен тип
        if(chislo>0) // проверяваме дали ч-лото е по-голямо от 0
         return suma(sum=sum+(chislo%10),chislo/10); // връща сума на ч-лата
        else // иначе
         return sum;  // върща СУМА
    }
     
    int broi(int chislo,int n){ // декларираме ф-я от цел. тип с 2 параметъра cnislo и n
        if(chislo>0)//  ако ч-лото е по-голямо от 0
         return broi(chislo/10,n=n+1); // връща броя на ч-лата
        else // иначе
         return n; // връща n
    }
     
    int main(int argc, char *argv[])
    {
        int chislo,sum=0,n=0; // декларираме  3 променливи, като задаваме стойност 0 на сумата и n  
        cout<<"Vavedi chislo "; // извежда на екрана следния текст
        cin>>chislo; // въвеждаме ч-ло
         
        cout<<"Sumata e: "<< suma(sum,chislo)<<endl;  // извежда на екрана сумата на ч-лата
         
        cout<<"Broiat e: "<<broi(chislo,n)<<endl; //извежда на екрана броя на ч-лата
         
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  8. lochka каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
     
    int suma(int sum,int chislo){ // декларираме функция suma с параметри sum и chislo
        if(chislo>0) // ако числото е положително 
         return suma(sum=sum+(chislo%10),chislo/10); // връщаме функцията suma, 
        else // в противен случай 
         return sum; // връщаме sum
    }
     
    int broi(int chislo,int n){  // декларираме функция  broi с параметри chislo и n
        if(chislo>0) // ако числото е положително 
         return broi(chislo/10,n=n+1); // връщаме броя на числото без последната цифра 
        else // в противен случай
         return n; // връщаме n
    }
     
    int main(int argc, char *argv[])
    {
        int chislo,sum=0,n=0;  // декларираме chislo,sum=0,n=0
        cout<<"Vavedi chislo "; // извеждаме на екрана Vavedi chislo
        cin>>chislo; // въвеждане от клавиатурата chislo
         
        cout<<"Sumata e: "<< suma(sum,chislo)<<endl; // извеждаме на екрана "Sumata e: " извеждаме резултата на функция suma с параметри sum,chislo
         
        cout<<"Broiat e: "<<broi(chislo,n)<<endl; // извеждаме на екрана "Broiat e: " , извеждаме резултата на функцията broi(chislo,n)
         
        system("PAUSE"); 
        return EXIT_SUCCESS; // край на програмата
    } 

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