2 条题解
-
1
#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
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
- 上传者