4 条题解
-
0
#include<bits/stdc++.h> #define int long long using namespace std; signed main(){ int n; cin>>n; int sign = n/abs(n);//以1和-1的形式记录n的正负(n>0时,n÷│n│=1;n<0时,n÷│n│=-1) n = abs(n);//获取n的绝对值 int fzh = 0;//│n│反转后的值 for(int i = 1;i <= n;i *= 10){//对│n│进行反转 fzh *= 10; fzh += (signed)floor(n%(10*i)/i); //提取│n│的每一位然后添加到fzh末尾 } fzh *= sign;//将反转后的│n│乘以1或-1得到结果 cout<<fzh; }
-
0
做法 1
#include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; if (n < 0) { cout << "-"; n = -n; } if (n == 0) cout << "0"; else { int ans = 0; for(int i = n; i > 0; i /= 10) ans = ans * 10 + (i % 10); cout << ans << "\n"; } return 0; }
做法 2
#include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; if (n < 0) { cout << "-"; n = -n; } if (n == 0) cout << "0"; else { bool flag = true;//当前是否处于前导 0 的部分 for(int i = n; i > 0; i /= 10) if (i % 10 == 0 && flag == true) { //如果是0且在前导0的部分就不输出 } else { cout << (i % 10); //一旦输出过东西了,后面的就都不是前导 0 的部分了 flag = false; } } return 0; }
-
0
一个循环
#include<bits/stdc++.h> using namespace std; int main() { int f1=0,f2=0; string a; cin>>a; int i; if(a[0]=='-') { f1=1;//负数标记 cout<<"-"; } if(a[0]=='0') { cout<<'0'; return 0; } for(i=a.length()-1;i>=0;i--) { if(a[i]!='0'||f2) { f2=1;//末尾零去完 cout<<a[i]; } if(f1&&i==1) return 0; } return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int main() { string a; cin>>a; if(a[0]=='0') { cout<<'0'; return 0; } int j=a.size()-1; while(a[j]=='0') { a[j]='@'; j--; } if(a[0]=='-') { cout<<'-'; for(int i=a.size()-1;i>0;i--) { if(a[i]!='@') cout<<a[i]; } } else { for(int i=a.size()-1;i>=0;i--) { if(a[i]!='@') cout<<a[i]; } } return 0; }
- 1
信息
- ID
- 309
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 266
- 已通过
- 63
- 上传者