1401: 递归求和
题目描述
使用递归编写一个程序,求:
S(n)=1-1/2+1/3-1/4+1/5-1/6+......
输入
多组数据输入,每组输入一个正整数n。
输出
输出S(n)的计算结果(精确到小数点后六位)。
样例输入 Copy
1
样例输出 Copy
1.000000
import java.util.Scanner;
public class Main{
public static double ab(double n){
if(n==1){
return 1;
}
if(n%2==0)
{return -1.0/n+ab(n-1);}
else
return 1.0/n+ab(n-1);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner f=new Scanner(System.in);
while(f.hasNextFloat()){
float a=f.nextFloat();
double d=ab(a);
System.out.printf("%.6f\n",d);
}
}
}
1405: 倒序输出
题目描述
使用递归编写一个程序,逆序输出一个非负整数。例如输入1234,输出4321(不含前导0)。
输入
多组输入,每组输入一个非负整数。
输出
逆序输出结果,每个结果占一行。
样例输入 Copy
12 1230 0
样例输出 Copy
21 321 0
#include<stdio.h>
void fun(int n){
if(n<10)
printf("%d\n",n);
else
{printf("%d",n%10);
fun(n/10);}
}
int main(){
int m;
while(scanf("%d",&m)!=EOF){
while(m%10==0&&m!=0)
{
m=m/10;}
fun(m);}
return 0;
}
1568: Kimi数列
题目描述
Kimi最近在研究一个数列: * F(0) = 7 * F(1) = 11 * F(n) = F(n-1) + F(n-2) (n≥2) Kimi称之为Kimi数列。请你帮忙确认一下数列中第n个数是否是3的倍数。
输入
输入包含多组数据。 每组数据包含一个整数n,(0≤n≤30)。
输出
对应每一组输入有一行输出。 如果F(n)是3的倍数,则输出“Yes”;否则输出“No”。
样例输入 Copy
0 1 2 3 4 5
样例输出 Copy
No No Yes No No No
import java.util.Scanner;
public class Main {
public static int fun(int a) {
if(a==0)
return 7;
if(a==1)
return 11;
return fun(a-1)+fun(a-2);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner i=new Scanner(System.in);
while(i.hasNextInt()) {
int n=i.nextInt();
int b=fun(n);
if(b%3==0) System.out.println("Yes");
else System.out.println("No");
}
}
}
1402: 蜂房
题目描述
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
输入
多组数据输入,每组数据包含两个正整数a, b,且 a<b。
输出
蜜蜂从蜂房a爬到蜂房b的可能路线数。
样例输入 Copy
1 2 3 4
样例输出 Copy
1 1
import java.util.Scanner;
public class Main{
public static double ab(double n){
if(n==1)
return 1;
if(n==2)
return 2;
else
return ab(n-1)+ab(n-2);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner f=new Scanner(System.in);
while(f.hasNextInt()){
int a=f.nextInt();
int b=f.nextInt();
int d=(int) ab(b-a);
System.out.println(d);
}
}
}
1408: 骨牌覆盖
题目描述
用大小为1×2的骨牌铺满一个大小为2×n的长方形方格,编写一个程序,输入n,输出铺放方案总数。例如,输入n=3,即大小为2×3的方格,输出3。3种骨牌铺放方案如下图所示:
输入
多组测试用例,每一组是一个正整数。
输出
每组输出占一行。
只需要输出铺放方案总数,不需要输出具体的铺放方案。
样例输入 Copy
3
样例输出 Copy
3
import java.util.Scanner;
public class Main{
public static int ab(double n){
if(n==1)
return 1;
if(n==2)
return 2;
else
return ab(n-1)+ab(n-2);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner f=new Scanner(System.in);
while(f.hasNextInt()){
int a=f.nextInt();
int d=ab(a);
System.out.println(d);
}
}
}