输出n~1的整数
#include<bits/stdc++.h>
using namespace std;
int n;
void f(int);
int main()
{cin>>n;f(n);return 0;
}
void f(int n){if(n==0) return;cout<<n<<endl;f(n-1);
}
求100+97+......+4+1的值
#include<bits/stdc++.h>
using namespace std;
int n;
void f(int,int);
int main()
{int sum=0;n=100;f(n,sum);return 0;
}
void f(int n,int sum){sum=sum+n;if(n==1){cout<<sum;return;}f(n-3,sum);
}
爱因斯坦的数学题
#include<bits/stdc++.h>
using namespace std;
int n;
void f(int);
int main()
{n=1;f(n);return 0;
}
void f(int n){if(n%2==1&&n%3==2&&n%5==4&&n%6==5&&n%7==0){cout<<n;return;}f(n+1);
}
求出100~999的水仙花数
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int);
int main()
{n=100;f(n);cout<<sum;return 0;
}
void f(int n){if(n==999) return;int x=n%10;int y=n/10%10;int z=n/100%10;if(x*x*x+y*y*y+z*z*z==n){sum++;cout<<n<<endl;}
}
数字直角
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int,int);
int main()
{int i=1;cin>>n;f(n,i);return 0;
}
void f(int n,int i){if(i>n) return;for(int j=1;j<=i;j++){cout<<j;}cout<<endl;i++;f(n,i);
}
求整数位数
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int);
int main()
{cin>>n;f(n);cout<<sum;return 0;
}
void f(int n){if(n==0) return;n=n/10;sum++;f(n);
}
小球反弹高度
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
double e;
void f(int);
int main()
{n=100;f(n);cout<<fixed<<setprecision(8)<<e;return 0;
}
void f(int n){if(sum>10) return;e=1.0*n/2;sum++;f(n/2);
}
分离正整数
#include<bits/stdc++.h>
using namespace std;
int n,sum=0;
void f(int,int),j(int,int,int,int,int,int,int);
int l[10];
int main()
{int k;cin>>n>>k;f(n,k);return 0;
}
void f(int n,int k){int a,b,c,d,e,f,g;a=n%10;b=n/10%10;c=n/100%10;d=n/1000%10;e=n/10000%10;f=n/100000%10;g=n/1000000%10;j(a,b,c,d,e,f,g);cout<<l[k];return;}
void j(int a,int b,int c,int d,int e,int f,int g){l[1]=a;l[2]=b;l[3]=c;l[4]=d;l[5]=e;l[6]=f;l[7]=g;return;
}