杭电acm题(1)

地址: http://www.pythontip.com/acm/problemCategory#HDU




1005:

数字序列定义如下:

f(1)= 1,f(2)= 1,f(n)=(A * f(n - 1)+ B * f(n - 2))mod 7. 

给定A,B和n,你要计算f(n)的值。


* Program Name:text1005.java

* @author calorie


public class text1005 {

public static void main(String[] args) {

f(1);

System.out.println(f(1));

}

public static int f(int n) {

int a = 1, b = 3;

if (n == 1 || n == 2)

{return 1;}

else{return (a * f(n - 1) + b * f(n - 2)) % 7;}

}

}

其中 a,b,n值可以自己赋值,略


问1008:

我们城市最高的建筑只有一部电梯。请求列表由N(小于100)个正数组成。数字表示电梯将以指定顺序停在哪些楼层。将电梯向上移动一层需要6秒钟,向下移动一层楼需要4秒钟。电梯将在每个站点停留5秒钟。对于给定的请求列表,您将计算在列表上完成请求所花费的总时间。电梯在开始时位于0楼,并且在满足要求时不必返回底层。


public class text1008 {

public static void main(String[] args) {

final int a =6;

final int b =4;

final int c =5;

System.out.println("请输入层数:");

Scanner input = new Scanner(System.in);

int now = input.nextInt();

int end = input.nextInt();

time(now,end);

}

public static void time(int now,int end) {

int sum = 0;

if(now>end) {

sum=(now-end)*4+5;

System.out.println(sum);

}

else if(now

sum=(end-now)*6+5;

System.out.println(sum);

}

else {

System.out.println(0);

}

}

}


问1013:

通过对整数的数字求和来找到正整数的数字根。如果结果值是单个数字,则该数字是数字根。如果结果值包含两个或更多个数字,则将这些数字相加并重复该过程。只要需要获得一位数,就会继续这样做。

例如,考虑正整数24.添加2和4产生值6.由于6是单个数字,6是24的数字根。现在考虑正整数39.添加3和9的产量12.由于12不是一个数字,因此必须重复该过程。添加1和2 yeilds 3,单个数字以及39的数字根


public class text1013 {

public static void main(String[] args) {

System.out.println("请输入数字:");

Scanner input = new Scanner(System.in);

int num = input.nextInt();

back(num);

}

public static void back(int a) {

int sum = 0;

if (a < 10) {

System.out.println(a);

} else {

while (a != 0) {

sum = sum + a % 10;

a = a / 10;

}

System.out.println(sum);

if (sum > 10) {

back(sum);

}

}

}

}


你可能感兴趣的:(杭电acm题(1))