请输出n~1之间所有的整数
问题描述: 从键盘读入一个整数 n ,请输出 n∼1 之间所有的整数,每行输出 1 个。 比如,假设读入 n=5 ,输出结果如下:
5
4
3
2
1
输入 一个整数 n 。 输出 输出 n∼1 之间所有的数,每行 1 个。 样例
输入复制
5
输出复制
5
4
3
2
1
#include<bits/stdc++.h>
using namespace std;
void func(int);
int main()
{
int n;
cin>>n;
func(n);
return 0;
}
void func(int n)
{
if(n==0)return;
cout<<n<<endl;
func(n-1);
}
求100+97+……+4+1的值
问题描述: 求 100+97+⋯+4+1 的值。
输入
无
输出
一行,即求到的和。
#include<bits/stdc++.h>
using namespace std;
void func(int);
int sum=0;
int main()
{
func(100);
cout<<sum;
return 0;
}
void func(int n)
{
if(n<1)return;
sum=sum+n;
func(n-3);
}
爱因斯坦的数学题
问题描述: 爱因斯坦出了一道这样的数学题:
有一条长阶梯,
若每步跨 2 阶,则最后剩 1 阶,
若每步跨 3 阶,则最后剩 2 阶,
若每步跨 5 阶,则最后剩 4 阶,
若每步跨 6 阶,则最后剩 5 阶。
只有每次跨 7 阶,最后才正好一阶不剩。
请问这条阶梯最少共有多少阶?
输入
无
输出
这条阶梯最少的阶数
#include<bits/stdc++.h>
using namespace std;
void func(int);
int main()
{
func(1);
return 0;
}
void func(int n)
{
if(n%2==1&&n%3==2&&n%5==4&&n%6==5)
{
cout<<n;
return;
}
func(n+1);
}
求出100至999范围内的所有水仙花数
问题描述: 所谓水仙花数,就是指各位数字立方之和等于该数的数; 例如:
因为 153=1*1*1 + 5 *5*5 + 3*3*3,所以 153 是一个水仙花数。
输入
无
输出
若干行,每行一个整数,表示该范围内(100~999)的所有水仙花数。 按从小到大的顺序输出。
#include<bits/stdc++.h>
using namespace std;
void func(int);
int cnt=0;
int main()
{
func(100);
cout<<cnt;
return 0;
}
void func(int n)
{
if(n>999)return;
int a=n%10;
int b=n/10%10;
int c=n/100;
if(a*a*a+b*b*b+c*c*c==n)cnt++;
func(n+1);
}
数 字 直 角 ( 2 )
问 题 描 述: 请 打 印 n 行 的 数 字 直 角 三 角 形 。 输 入 一 个 整 数 n < 1 0 。 输 出 输 出 如 下 方 图 所 示 n 行 的 数 字 直 角 三 角 形 。
输 入 复 制
3
输 出 复 制
1
1 2
1 2 3
#include<bits/stdc++.h>
using namespace std;
void func(int,int);
int main()
{
int n;
cin>>n;
func(1,n);
return 0;
}
void func(int i,int n)
{
if(i>n)return;
int k=1;
for(int j=0;j<i;j++)
{
cout<<k;
k++;
}
cout<<endl;
func(i+1,n);
}
求整数位数
题目描述: 求任意正整数的位数。比如16是两位数,3696是四位数等 输入:一个整数 输出:这个整数的位数
输入案例:
54188
输出案例:
5
#include<bits/stdc++.h>
using namespace std;
void func(int);
int cnt=0;
int main()
{
int n;
cin>>n;
func(n);
cout<<cnt;
return 0;
}
void func(int n)
{
if(n==0)return;
cnt++;
n=n/10;
func(n);
}
小球反弹高度
题目描述: 一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下求它在第10次落地时, 反弹多高? 共经过多少米 ? (保留8位小数)
输入:
无
输出:
经过10次反弹后的高度
#include<bits/stdc++.h>
using namespace std;
void func(double);
int cnt=0;
double t;
int main()
{
func(100);
cout<<fixed<<setprecision(8)<<t;
return 0;
}
void func(double n)
{
if(cnt==10)return;
cnt++;
n=n*0.5;
t=n;
func(n);
}
分离正整数
题目描述: 在程序中定义一函数digit(n,k), 它能分离出整数n从右边数第k个数字例如n=31859,k=3, 则函数输出8 输入:两个整数n和k,其中n表示整数,k表示从右边第k位 输出:第k位的值
输入案例
1254876 2
输出案例
7
#include<bits/stdc++.h>
using namespace std;
int func(int,int);
int cnt=0;
int main()
{
int n,m;
cin>>n>>m;
cout<<func(n,m);
return 0;
}
int func(int n,int m)
{
if(cnt==m-1)
{
int a=n%10;
return a;
}
cnt++;
func(n/10,m);
}