题解 | #多多的数字组合#
多多的数字组合
http://www.nowcoder.com/practice/3d6b53e097ea41bda049d111f30db28e
多多的数字组合
#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; }