- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- /*申请空间*/
- int factorial_TB[10];
- int n,_i_temp_1,_i_temp_2;
- long i,s,_i_temp_sum = 1;
- /*初始化值*/
- factorial_TB[0] = 0;
- _i_temp_sum = 1;
- /*先建立0~9的阶层表*/
- for(_i_temp_1 = 1;_i_temp_1 < 10; _i_temp_1++){
- _i_temp_sum*=_i_temp_1;
- factorial_TB[_i_temp_1] = _i_temp_sum;
- }
- printf("factorial_TB[0~9] IS ");
- for(_i_temp_1 = 0;_i_temp_1 < 10; _i_temp_1++){
- printf("%d ",factorial_TB[_i_temp_1]);
- }
- printf("\n");
- /*开始找符合条件的数字,边界是if判断*/
- for(i = 1;;i++){
- _i_temp_sum = 0;
- _i_temp_1 = i;
- /*求i的数位n和各个数位的阶层和值_i_temp_sum*/
- for(n = 0;_i_temp_1 > 0;){
-
- _i_temp_2 = _i_temp_1%10;
- _i_temp_1 = _i_temp_1/10;
- n++;
- _i_temp_sum += factorial_TB[_i_temp_2];
- /*提前结束*/
- if(_i_temp_sum > i){
- continue;
- }
- }
- /*找到目标数字*/
- if(i == _i_temp_sum){
- printf("\nGet number (%4d) ",i);
- }
- /*退出条件*/
- if(i>n*factorial_TB[9]){
-
- printf("\nEnd number == %d\nshift == %d ",i,n);
- break;
- }
- }
- scanf("%d",&s);
- //system("pause");
- return 0;
- }
复制代码
其中 system("pause")是实现什么功能? |
|