2 条题解

  • 1
    @ 2025-10-19 12:43:25

    #include<bits/stdc++.h> #define ll long long #define un unsigned #define int long long #define db double #define st string #define ct const #define xh(a,b,c) for(int a=b;a<=c;a++) #define wx while(1) #define dn(a,b,c) for(int a=b;a>=c;a--) using namespace std; string s; void dfs(int n){ if(n==-1)return ; cout<<s[n]; dfs(n-1); } signed main(){ cin>>s; dfs(s.size()-1); return 0; }

    • 0
      @ 2025-7-4 11:00:41

      2种方法AC这道题目


      1、利用数组将原数每一位储存在数组内,由于是mod运算,所以要正序输出

      #include<bits/stdc++.h>
      using namespace std;
      long long n,a[300],x;
      void dxs(){
      	while(n!=0){
      		x++;
      		a[x]=n%10;
      		n/=10;
      	}
      }
      int main(){
      	cin>>n;
      	dxs();
      	for(int i=1;i<=x;i++)cout<<a[i];
      	return 0;
      }
      

      2、利用子程序层层调用,从而达到效果

      #include<bits/stdc++.h>
      using namespace std;
      void dxs(int x){
      	if(x==0)return ;
      	cout<<x%10;
      	dxs(x/10);
      }
      int main () {
      	int n;
      	cin>>n;
      	dxs(n);
      	return 0;
      }
      

      Ps 其实还有一种方法,但是在实测中只有60分,因为他将开头的零去掉了奇怪,测试数据怎么没有去掉

      以下是递归法

      #include<bits/stdc++.h>
      using namespace std;
      int i=0;
      int dxs(int x){
      	i--;
      	if(x==0)return 0;
      	return x%10*int(pow(10,i))+dxs(x/10);
      	
      }
      int main () {
      	int n,a;
      	cin>>n;
      	a=n;
      	while(a!=0)a/=10,i++;
      	a=dxs(n);
      	cout<<a;
      	return 0;
      }
      
      • 1

      信息

      ID
      622
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      (无)
      递交数
      75
      已通过
      32
      上传者