第二周java作业

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

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();
    }

}


 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86

结果截图

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
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76

这里写图片描述

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

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));
        }
    }
}


 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

结果截图

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

这里写图片描述

第三题:求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);
    }

}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

结果截图

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

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值