第二周java作业--2017.09.06

来源:互联网 发布:广电网络的wifi网址 编辑:程序博客网 时间:2024/06/14 00:16

第一题:摄氏度跟华氏摄氏度的转换问题:

package week2;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import javax.naming.ldap.SortControl;/** * 华氏温度与摄氏温度间的转换问题 * @author Lenovo_PC */public class Test01 {    public static void main(String[] args) {        // TODO Auto-generated method stub        choose();    }    private static void choose() {        // TODO Auto-generated method stub        System.out.println("请选择方式");        System.out.println("1.正序表");        System.out.println("2.倒序表");        System.out.println("3.自定义");        System.out.println("4.退出");        Scanner input = new Scanner(System.in);        int number = 0;        number = input.nextInt();        switch (number) {        case 1:            Sort(1);            break;        case 2:            Sort(2);            break;        case 3:            Personal();            break;        case 4:            System.exit(0);            break;        default:            System.out.println("请输入正确的编号");            break;        }    }    private static void Personal() {        // TODO Auto-generated method stub        System.out.println("请输入需要转换的度数");        Scanner input = new Scanner(System.in);        int number = 0;        number = input.nextInt();        float result = 5 / 9.0f * (number - 32);        System.out.printf("%.1f\n",result);        choose();    }    private static void Sort(int i) {        // TODO Auto-generated method stub        int[] pre = {0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300};        List<Float> list = new ArrayList<Float>();        float result;        for (int j = 0; j < pre.length; j++) {            result = 5 / 9.0f * (pre[j] - 32);            list.add(result);        }        if (i==1) {            for (int j = 0; j < pre.length; j++) {                System.out.printf(pre[j]+"\t");                System.out.printf("%.1f\n",list.get(j));            }        }else {            for (int j = pre.length-1; j >= 0; j--) {                System.out.printf(pre[j]+"\t");                System.out.printf("%.1f\n",list.get(j));            }        }        choose();    }}

结果截图

OC:(部分主要代码)

////  ChangeDemo.m//  lesson1////  Created by Zb_tjw on 2017/10/8.//  Copyright © 2017年 Zb_tjw. All rights reserved.//#import "ChangeDemo.h"@implementation ChangeDemo-(void) choose{    NSLog(@"请选择方式:");    NSLog(@"1.正序表:");    NSLog(@"2.倒序表:");    NSLog(@"3.自定义:");    NSLog(@"4.退出:");    //    char *cstring = malloc(sizeof(char) * 2);    //    scanf("%s", cstring);    //    NSString *string = [NSString stringWithUTF8String:cstring];    int number = 0;    scanf("%d",&number);    switch (number) {        case 1:            [self Sort:1];            break;        case 2:            [self Sort:2];            break;        case 3:            [self Personal];            break;        case 4:            exit(0);            break;        default:            NSLog(@"请输入正确的编号");            break;    }}-(void) Sort:(int)i{    // TODO Auto-generated method stub    int pre[] = {0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300};    float after[16];    float result;    for (int j = 0; j < 16; j++) {        result = 5 / 9.0f * (pre[j] - 32);        after[j] = result;    }    if (i==1) {        for (int j = 0; j < 16; j++) {            NSLog(@"%d  %f",pre[j],after[j]);        }    }else {        for (int j = 15; j >= 0; j--) {            NSLog(@"%d  %f",pre[j],after[j]);        }    }    [self choose];}-(void) Personal{    // TODO Auto-generated method stub    NSLog(@"请输入需要转换的度数");    int number = 0;    scanf("%d",&number);    float result = 5 / 9.0f * (number - 32);    NSLog(@"%.1f\n",result);    [self choose];}@end

这里写图片描述

第二题:找出所有的水仙花数

package week2;import java.util.ArrayList;import java.util.List;/** * 求所有的水仙花数 * @author Lenovo_PC */public class Test02 {    public static void main(String[] args){        System.out.println("所有水仙花数:");        int ge,shi,bai;        List<Integer> list = new ArrayList<Integer>();        for (int i = 100; i < 1000; i++) {            ge = i % 10;            shi = i / 10 % 10;            bai = i / 100;            if (Math.pow(ge, 3)+Math.pow(shi, 3)+Math.pow(bai, 3) == i) {                list.add(i);            }        }        for (int i = 0; i < list.size(); i++) {            System.out.println(list.get(i));        }    }}

结果截图

OC:(主要就是所找个数不确定,所以不能用数组,用动态内存分配来实现,时隔两年再一次玩动态内存分配又有了点当时做ASM题的感觉啊)

////  Flower.m//  changeDemo////  Created by Zb_tjw on 2017/10/10.//  Copyright © 2017年 Zb_tjw. All rights reserved.//#import "Flower.h"@implementation Flower- (void)find{    NSLog(@"所有水仙花数:");    int ge,shi,bai;    int *result = NULL;    result = (int *)malloc(sizeof(int));    int length = 0;    for (int i = 100; i < 1000; i++) {        ge = i % 10;        shi = i / 10 % 10;        bai = i / 100;        if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i) {            result[length] = i;            result = (int *)realloc(result, sizeof(int));            length++;        }    }    for (int i = 0; i < length; i++) {        NSLog(@"%d", result[i]);    }}@end

这里写图片描述

第三题:求1到20的阶乘的和

package week2;/** * 1到20的阶乘和 * @author Lenovo_PC */public class Test03 {    public static void main(String[] args) {        // TODO Auto-generated method stub        double sum = 0,multiply = 1;        for (int i = 1; i <= 20; i++) {            for (int j = 1; j <= i; j++) {            multiply *= j;              }            sum += multiply;            multiply = 1;        }        System.out.println("1到20的阶乘和为:"+sum);    }}

结果截图

OC:(部分主要的实现代码)

////  Multiply.m//  changeDemo////  Created by Zb_tjw on 2017/10/10.//  Copyright © 2017年 Zb_tjw. All rights reserved.//#import "Multiply.h"@implementation Multiply- (void)mutiply{    double sum = 0,multiply = 1;    for (int i = 1; i <= 20; i++) {        for (int j = 1; j <= i; j++) {            multiply *= j;        }        sum += multiply;        multiply = 1;    }    NSLog(@"1到20的阶乘和为:%e",sum);}@end

这里写图片描述

原创粉丝点击