如果已知英制长度的英尺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;
}
扫描二维码关注公众号,回复:
12421115 查看本文章
