厘米换算英寸英尺(PTA题解)

如果已知英制长度的英尺foot英寸inch的值,那么对应的(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

5  6

思路:

这题想了很久,发现这B题没点常识就会缺失一个条件:即1米等于英尺*0.3048,这是很关键的一步。

1英尺(foot)等于12英寸(inch)         米(meter)== 英尺*0.3048==100厘米(centimetre)== (foot+inch/12)×0.3048     

推导:英尺==100厘米/0.3048==30.48cm,注意这是一个double类型的值,而等式中的foot是int型的,所以,英寸-foot==inch/12,则inch==(int)((英寸-foot)*12)

即:英尺(foot)==厘米/30.48  ,让输入的厘米除以30.48,便是带小数的英尺,直接取整便是所得英尺。将小数部分乘以12并取整,便为英寸。

不过我还是想不通题中的条件:1英尺等于12英寸有什么用?各位知道的麻烦评论区告知一下,谢谢!

下面我给出Java编写的答案:

package com.znzz.JavaTest;

import java.util.Scanner;

public class LengthConversion {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int cm;//厘米数
		int foot,inch;//foot、inch分别为英尺、英寸
		Scanner sc=new Scanner(System.in);
		cm=sc.nextInt();
		foot=(int)(cm/30.48);
		inch=(int)((cm/30.48-foot)*12);
		System.out.println(foot+" "+inch);
		sc.close();
	}
}

采用C编写:

#include <stdio.h>
int main()
{ 
    int cm=0;
    scanf("%d",&cm);    //输入的cm
    int foot = cm/30.48;  /* 1英尺等于30.48厘米 */
    int inch = (cm/30.48 - foot) * 12;
    printf("%d %d",foot,inch);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_47610562/article/details/113152546
今日推荐