整数分解:/10%10得到第-2位

  • %10得到最后一位,/10丢掉最后一位,%100得到最后两位,/100丢掉最后两位
  • 四位数

    • 最低位:%10
    • 第三位:/10%10
    • 第二位:/100%10
    • 第一位:/1000

eg1-5 整数反转

输入一个三位数,分离出它的百位,十位和个位,输出反转后的结果和原来的三位数
输入: 127
输出:721 127

整数分解过程中原来的数已经发生变化,而最后要输出原来的三位数,因此开始要用变量存储这个数

之后还需使用的变量发生变化,则需要先用变量存储其原来的值

  1. #include <iostream>
  2. using namespace std;
  3. int a[5];
  4. int main()
  5. {
  6. int n;
  7. cin >> n;
  8. int t = n;
  9. for(int i=0; i<3; i++){
  10. a[i] = n%10;
  11. n /= 10;
  12. }
  13. for(int i=0; i<3; i++)
  14. cout << a[i];
  15. cout << " " << t;
  16. return 0;
  17. }

ex2-1 水仙花

若三位数满足 ABC = A^3 + B^3 + C^3,则称其为水仙花数,输出100-999中所有水仙花数

枚举,逐一判断是否符合条件

  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int decom(int n){
  5. int high = n/10/10;
  6. int mid = n/10%10;
  7. int low = n%10;
  8. return pow(high,3)+pow(mid,3)+pow(low,3);
  9. }
  10. int main()
  11. {
  12. for(int i=100; i<999; i++){
  13. if(i==decom(i))
  14. cout << i << endl;
  15. }
  16. return 0;
  17. }

找规律:写出通项

eg2-3 近似计算

ex2-3 倒三角形