1、求斐波那契数列的前40项的和
1 1 2 3 5 8 13 21 34 55 89……
思路:分成四种情况→n<1,n=1,n=2,n>=3分别讨论。n>=3时在已知前两项的和为2的条件下直接与后面的项相加。
package com.xinwei.src;
public class Demo3 {
public static void Fibonacci(int n) {
if(n < 1) {
System.out.println(0);
}
if(n == 1) {//n等于1时前一项的和
System.out.println(1);
}
if(n == 2) {//n等于2时前两项的和
System.out.println(2);
}
int f1 = 1, f2 = 1;
int sum = 2;
//i大于3也可说n大于3,要求前n项的和就应该由前两项的和加上第三项。此处直接给sum赋值为2即前两项的和
/*
1 1 2 3 5 8 13 21 34 55
根据规律可以看出用第下一个斐波那契数的值替换f2原来的值,那么f2就应等于前两项的和
f1就应等于替换后的f2的值减去原先的f1
*/
for(int i=3; i<=n; i++) {//n大于等于3时前n项的和,此处求前40项的和
f2 = f1 + f2;
f1 = f2 - f1;
sum += f2;
}
System.out.println(sum);
}
public static void main (String []args) {
int n = 40;
Fibonacci(n);
}
}
2、用for循环产生20个随机数(10-20)
▲document.write(Math.random());返回随机数
▲document.write(Math.random()(20-10)+10);返回10-20的随机数
▲document.write(Math.random()(n-m)+m);返回指定范围的随机数(m-n之间)的公式
package com.xinwei.src;
public class Demo3 {
public static void random() {
for(int n=1;n<=20;n++) {
int i = (int) (Math.random() * (20 - 10) + 10);
**//Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。
// 例如:int i=(int)(Math.random()*(3-1)+1),设置一个随机1到3的变量。**
System.out.println(i);
}
}
public static void main (String []args) {
random();
}
}
3、输入一个数字,求他是几位数,并顺序输出,逆序输出
package com.xinwei.src;
import java.util.Scanner;
public class Demo3 {
public static void goodPoor(String s,int num) {//此处传入一个三位数
int a[]=new int[3];
int m=0;
System.out.println("位数:"+s.length());//直接读取s的长度
System.out.println("正序:");
System.out.println(+num);//直接输出原来输入的值
System.out.println("逆序:");
while (num>0) {//num大于0成立时进行循环
int d = num % 10;//第一次求出输入数值的最后一位依此类推
m = m * 10 + d;//第一次求出逆序之后首位依此类推
num=num/10;
}
System.out.println(+m);
}
public static void main (String []args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入num的值:");
int num = scanner.nextInt();
String s = String.valueOf(num);//返回String类型的num的值。num现在是int类型,需要想转换成String类型.
goodPoor(s,num);
}
}
4、求一个数字的二进制数有几个“1”
思路:设置一个等于0的参数,将输入的数(m)除以2取余如果等于1则参数加1进行循环直到m等于0结束循环。
package com.xinwei.src;
import java.util.Scanner;
public class Demo3 {
public static void binarySystem(int m) {
int count = 0;
while (m!=0){
if((m%2)==1) {
count++;
}
m=m/2;
}
System.out.println(count);
}
public static void main (String []args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入m的值:");
int m = scanner.nextInt();
binarySystem(m);
}
}