1 #include<iostream> 2 #include<iomanip> 3 #include<cmath> 4 #include<vector> 5 #include<time.h> 6 #include<fstream> 7 using namespace std; 8 //1、水仙花数 9 //int main() 10 //{ 11 // for (int i = 100; i <= 999; i++) 12 // { 13 // int a = 0, b = 0, c = 0; 14 // int sum = i; 15 // a = sum % 10; 16 // sum = sum / 10; 17 // b = sum % 10; 18 // sum = sum / 10; 19 // c = sum % 10; 20 // if (i == a*a*a + b*b*b + c*c*c) 21 // { 22 // cout << i << endl; 23 // } 24 // } 25 // printf("Time used = %.2f\n", (double)clock() / CLOCKS_PER_SEC); 26 // system("pause"); 27 // return 0; 28 //} 29 //2、韩信点兵 30 //int main() 31 //{ 32 // 33 // int a = 0, b = 0,c = 0; 34 // while (cin >> a >> b >> c) 35 // { 36 // int min = 102; 37 // for (int i = 10; i <= 100; i++) 38 // { 39 // if (i % 3 == a && i % 5 == b && i % 7 == c) 40 // { 41 // if (i < min) 42 // min = i; 43 // } 44 // } 45 // if (min == 102) 46 // { 47 // cout << "no answer" << endl; 48 // } 49 // else 50 // { 51 // cout << min << endl; 52 // } 53 // } 54 // 55 // 56 // printf("Time used = %.2f\n", (double)clock() / CLOCKS_PER_SEC); 57 // system("pause"); 58 // return 0; 59 //} 60 //3、倒三角形 61 //int main() 62 //{ 63 // int n; 64 // while (cin >> n) 65 // { 66 // for (int i = n; i >= 1; i--) 67 // { 68 // for (int x = i; x < n; x++) 69 // cout << " "; 70 // for (int j = 1; j <= 2 * i - 1; j++) 71 // cout << "#"; 72 // for (int x = i; x < n; x++) 73 // cout << " "; 74 // cout << endl; 75 // } 76 // } 77 // return 0; 78 //} 79 //4、子序列的和 80 //int main() 81 //{ 82 // int n, m; 83 // int case1 = 0; 84 // while (cin >> n >> m&&n != 0 && m != 0) 85 // { 86 // case1++; 87 // float sum = 0.0; 88 // if (n <= m) 89 // { 90 // for (int i = n; i <= m; i++) 91 // sum += (1.0 /i)*(1.0/i); 92 // //sum += 1.0 /(i*i); 93 // } 94 // cout <<setprecision(20)<< fixed << "case" << case1 << ":" << sum << endl; 95 // } 96 // 97 // return 0; 98 //} 99 //5、分数化小数(decimal) 100 //int main() 101 //{ 102 // int a, b, c; 103 // while (cin >> a >> b >> c&&a != 0 && b != 0 && c != 0) 104 // { 105 // cout << setprecision(c) << (double)a / b << endl; 106 // } 107 // return 0; 108 //} 109 //6、排列 110 void result(int num, int &result_add, int &result_mul) 111 { 112 int i, j, k; 113 114 i = num / 100; //百位 115 j = num / 10 % 10; //十位 116 k = num % 10; //个位 117 118 result_add += i + j + k; //分解出来的位数相加 119 result_mul *= i * j * k; //相乘 120 } 121 122 123 int main() 124 { 125 int i, j, k; 126 int result_add, result_mul; 127 128 for (i = 123; i <= 329; i++) 129 { 130 j = i * 2; 131 k = i * 3; 132 133 result_add = 0; 134 result_mul = 1; 135 136 137 138 result(i, result_add, result_mul); 139 result(j, result_add, result_mul); 140 result(k, result_add, result_mul); 141 142 if (result_add == 45 && result_mul == 362880) 143 printf("%d %d %d\n", i, j, k); 144 } 145 system("pause"); 146 return 0; 147 }