笔记:算法题目中需要处理 int 某个位的三种方法:for、while、to_string
int n;
cin >> n;
1. 使用for观察高位、低位、本位
for(int i = 1; i <= n; i *= 10){ //i = 1 当前位为个位, i = 10 为十位,以此类推
high = n / (i * 10); //这是相对于 i 的高位,例如 i 为个位时,有 high 个个位
cur = (n / i) % 10; //此为 i 位的数字
low = n % i //i 位更低位的数字,当 i 位为个位时,low无论如何都是0
}
相关题目:整数中1出现的次数(从1到n整数中1出现的次数)_牛客题霸_牛客网
2、使用while逐一处理从个位到最高位
while(n){
a = n % 10; //a为便利到的位置上的数字
n = n / 10
}
202. 快乐数 - 力扣(LeetCode)
3、to_string和ASCII转换解析每个字符
#include <iostream>
#include <string>
using namespace std;int main() {int n;cin >> n;string str = to_string(n);int size = str.size();// 直接输出字符for (int i = 0; i < size; i++) {cout << str[i];}cout << endl;//将字符转换为数字for (int i = 0; i < size; i++) {int digit = str[i] - '0'; // ASCII 转换cout << digit;}cout << endl;return 0;
}