Вывести на экран все шестизначные числа, сумма цифр которых равна N и сообщить количество таких чисел

Малыш Johny

Дано натуральное число N. Вывести на экран все шестизначные числа, сумма цифр которых равна N и сообщить количество таких чисел.(помогите плиииз!!!)
3 ответа

Малыш Johny

#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    freopen("number.in","r",stdin);
    freopen("number.out","w",stdout);
   
    unsigned long mas[1250]={0};
    int i=0;
    mas[0] = 1;
 
    int m, n;
    scanf("%d %d",&m,&n);
    n++;
    int j, k, t;
    for (j=1; j < n; j++) {
        for (k=j*9; k>0; k--) {
            t = 10;
            while ((k-(10-t)>0)&&(t>1)) {
                mas[k]+=mas[k-(10-t)-1];
                t--;
            }
        }
    }
    printf("%d\n", mas[m]);
    return 0;
 
}


Малыш Johny

#include <iostream>
int sum[6], n, a[6];
void print(){
  for (int i=0; i<6; i++)
    std::cout<<a[i];
  std::cout<<std::endl;
}
int main(){
std::cin>>n;
for (a[0]=1; a[0]<=9; a[0]++)
  for(sum[0]=a[0], a[1]=0; a[1]<=9 && a[1]<= n-sum[0]; a[1]++)
    for(sum[1]=sum[0]+a[1], a[2]=0; a[2]<=9 && a[2]<= n-sum[1]; a[2]++)
      for(sum[2]=sum[1]+a[2], a[3]=0; a[3]<=9 && a[3]<= n-sum[2]; a[3]++)
        for(sum[3]=sum[2]+a[3], a[4]=0; a[4]<=9 && a[4]<= n-sum[3]; a[4]++)
          for(sum[4]=sum[3]+a[4], a[5]=0; a[5]<=9 && a[5]<= n-sum[4]; a[5]++)
             if ((sum[5]=sum[4]+a[5])==n)
               print();
  return 0;
}


Малыш Johny

что выдает ошибку при debug в visual 10!))но все равно спасибо большое за помощь!!!