题解中看到的(不明所以):
for (n++; --n; ss << n); //把1-n的值都存放到字符串流中
数字转换字符串的方法(将要转换的数字i):
1. stringstream ss;
ss<<i;
string s = ss.str();
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x;
cin>>n>>x;
int c=0;//计数
char m = x+'0';//使x变成字符
stringstream ss;
for(int i=1;i<=n;i++){
ss<<i;
}
string s = ss.str();
for(int j=0;j<s.length();j++){
if(s[j]==m){
c++;
}
}
cout<<c;
return 0;
}
2. string s = to_string(i);
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x;
cin>>n>>x;
int c=0;//计数
char m = x+'0';//使x变成字符
stringstream ss;
for(int i=1;i<=n;i++){
string s = to_string(i);
for(int j=0;j<s.length();j++){
if(s[j]==m){
c++;
}
}
}
cout<<c;
return 0;
}