第二周java作业--2017.09.06

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

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

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值