本文共 4393 字,大约阅读时间需要 14 分钟。
展开全部
第十二题
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class exc12 {
/**
* 求1-3+5-7+9-11+…+(2n-1)的和
*
* @param num 待处理n的数字
* @return 计算式的值
*/
public static Long sum(int num) {
Long sum = 0L;
for (int i = 0; i <= num; i++) {
if (i % 2 == 0) {
sum -= (2 * i - 1);
} else {
if (i == 1) {
sum = 1L;
} else {
sum += (2 * i - 1);
}
}
}
return sum;
}
public static void main(String args[]) {
// 在F盘下新建一个a.txt,然后在里面输入数据n
File file = new File("F:/a.txt");
BufferedReader br;
int txtNum = 0;
try {
// 读取储存文档中N的值
br = new BufferedReader(new FileReader(file));
String s = br.readLine();
if (s == null) {
System.out.println("请在文档(F:/a.txt)中输入N的值");
System.exit(0);// 退出程序
} else {
txtNum = Integer.parseInt(s);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
long result = sum(txtNum);
System.out.println("结果为" + result);
}
}
第十三题
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Random;
public class exc13 {
/**
* 生成随机数组
* @param @param 数组个数N
* @throws
*/
public static int[] createArray(int n) {
int[] arr = new int[n];
Random random = new Random();
for (int i = 0; i < n; i++) {
// 生成的二位整数的数组的数值在32313133353236313431303231363533e59b9ee7ad9431333262356661[10,60]
arr[i] = 10 + random.nextInt(51);
}
System.out.println("随机生产的数组数据为:");
for (int x = 0; x < arr.length; x++) {
if (x != arr.length - 1) {
System.out.print(arr[x] + " ,");
} else {
System.out.print(arr[x]);
System.out.println();
}
}
return arr;
}
public static void main(String args[]) throws IOException {
// 输入数组个数n
// 使用缓冲区(BufferedReader)从文本数据流读取文本数据
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.println("请输入数组个数N(n<50):");// 显示输入信息
String s = input.readLine();// 从键盘输入一个字符串
int n = Integer.parseInt(s);// 将字符串s转换为整数
if (n >= 50) {
System.out.println("输入的数必须小于50");
System.exit(0);
}
int[] arr = createArray(n);
Arrays.sort(arr);// 对随即生产的 int 型数组按数字升序进行排序。
System.out.println("数组中最小的值是:" + arr[0]);
System.out.println("数组中最大的值是:" + arr[arr.length - 1]);
}
}
第十四题
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class exc14 {
/**
* 求2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和
*
* @param num 待处理的数据项数
* @return 这个数列的前n项之和
*/
public static float sumN(int number) {
int[] num=new int[number+1];
num[0]=1;
num[1]=2;
float sumResult = 0;
for(int j=2;j<=number;j++){
num[j]=num[j-1]+num[j-2];
}
for(int i=1;i<=number;i++){
sumResult += (float)num[i]/num[i-1];
}
return sumResult;
}
public static void main(String args[]) {
//在F盘下新建一个a.txt,然后在里面输入数据n
File file = new File("F:/a.txt");
BufferedReader br;
int txtNum = 0;
try {
//读取储存文档中N的值
br = new BufferedReader(new FileReader(file));
String s = br.readLine();
if (s==null) {
System.out.println("请在文档(F:/a.txt)中输入N的值");
System.exit(0);//退出程序
}else{
txtNum = Integer.parseInt(s);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
float result = sumN(txtNum);
System.out.println("这个数列的前"+txtNum+"项之和为" + result);
}
}
第十五题,
public class cheak {
public static void main (String[] args) {
for (int i = 0; i<=33; i++)//公鸡
{
for (int j = 0; j<=20; j++) //母鸡
{
for (int k = 0; k<=100;k=k+3 )//小鸡
{
if((i+j+k)==100)
{
if((i*3+j*5+k/3)==100)
{System.out.println("公鸡数目: "+i+" 单价:3"+" 总价:"+i*3);
System.out.println("母鸡数目: "+j+" 单价:5"+" 总价:"+j*5);
System.out.println("小鸡数目: "+k+" 单价:1/3"+" 总价:"+k/3);
System.out.println("\n");
}
}}
}
}
}
}
运行结果:
公鸡数目: 4 单价:3 总价:12
母鸡数目: 12 单价:5 总价:60
小鸡数目: 84 单价:1/3 总价:28
公鸡数目: 11 单价:3 总价:33
母鸡数目: 8 单价:5 总价:40
小鸡数目: 81 单价:1/3 总价:27
公鸡数目: 18 单价:3 总价:54
母鸡数目: 4 单价:5 总价:20
小鸡数目: 78 单价:1/3 总价:26
公鸡数目: 25 单价:3 总价:75
母鸡数目: 0 单价:5 总价:0
小鸡数目: 75 单价:1/3 总价:25
第十六题
public class exc16 {
//是否为完数;
public static boolean isPerfectNumber(int i) {
int sumof = 0;
int j;
for (j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sumof += j;
}
}
return i == sumof;
}
public static void main(String args[]) {
System.out.print("100以内的所有完数有: ");
for (int i = 2; i <= 100; i++)
if (isPerfectNumber(i)) {
System.out.print(i+" ");
}
}
}
运行结果:
100以内的所有完数有: 6 28
已赞过
已踩过<
你对这个回答的评价是?
评论
收起
转载地址:http://ugqsx.baihongyu.com/