4 条题解

  • 0
    @ 2023-10-14 23:02:48
    #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
      @ 2023-6-27 16:27:06

      做法 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
        @ 2023-6-26 17:18:08

        一个循环

        #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
          @ 2022-11-8 20:15:06
          #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
          标签
          (无)
          递交数
          265
          已通过
          63
          上传者