多多的数字组合

#include<stdio.h>

int pow(int num, int n){
    int temp = num;
    if(n == 0){
        return 1;
    }
    for(int i=1;i<n;i++){
        num = num * temp;
    }
    //printf("num = %d\n",num);
    return num;
}
int main(){
    int num = 0, result = 0;
    scanf("%d\n",&num);
    //1~9 累加最大的值为45,如果超过则肯定重复了
    if(num>45){
        printf("%d\n",-1);
        return 0;
    }
    int temp = num;
    for(int i=9; i>=0; i--){
        temp -= i;
        if(temp<=0){
            printf("%d\n",num);
            break;
        }
        //官方编译引入的pow不能用,只能自己写了
        result += i*pow(10,10-i-1);
        if(temp<i){
            result += temp*pow(10,10-i);
            printf("%d\n",result);
            break;
        }

    }
    return 0;
}