循环结构程序设计(算法竞赛入门经典)课后题

  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
", (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
", (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
", i, j, k);
144     }
145     system("pause");
146     return 0;
147 }
原文地址:https://www.cnblogs.com/wujufengyun/p/6893187.html