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;
}