没想到t*10 + num % 1这个地方,想复杂了,想到了先计算位数,然后%得到个数再乘以10的位数-1的次方来计算反序。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
signed weishu(int m){
	 int sum=0;
    while(m>0){
        sum++;
        m=m/10;
    }
    return sum;
}
signed huiwen(int n){
    int s=0;
    //判断N这个数有几位
   int sum=weishu(n);
    //求出反序之后的数 
    while(n>0){
        s=s+n%10*pow(10,sum-1);//1是10的0次方,10是10的1次方,故记得让位数减一
        n=n/10;
        sum--;
    }
    return s;
}
signed main(){
    std::ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
      int n;cin>>n;
    for(int i=1;i<=n;i++){
        if(huiwen(i)==i)cout<<i<<endl;
    }
    return 0;  
}