Description
小六是个吃货,现在是冬天,但是小六想吃西瓜了,没关系,小六是个小女巫,她有办法变出西瓜。但作为一个有追求的女巫,小六对西瓜的要求也是很高的,小六要吃的西瓜形状可以各异,但是西瓜皮的体积一定要够(小六爱吃西瓜皮)。现在有一个西瓜,请你先帮小六看看,她会不会吃这个西瓜。
Input
分3行输入;
第一行:小六最少要吃的西瓜皮的体积V;
第二行:一个字母,代表西瓜外壳的形状(b:球体,c:立方体)一个正数r(形状为b时,代表球体半径;形状为立方体时,代表立方体边长);
第三行:一个字母,代表西瓜内瓤的形状(b:球体,c:立方体)一个正数r(形状为b时,代表球体半径;形状为立方体时,代表立方体边长);
Output
如果西瓜皮的的体积大于V,则输出“YES”,否则输出“NO”;
Sample Input
13
c 3
c 2
Sample Output
YES
HINT
建议数据用double型
本帖最后由 wugy315 于 2017-11-30 20:53 编辑
其实很简单呀。这是一道时间复杂度只有O(1)的题。
手上没有CPP的IDE。就从算法的角度用Java来提供一种解决方案供参考吧。
[查看全文]public String eatOrNot(double v,char out,double outR,char inside,double insideR) throws Exception{
double vOut,vInside;
switch (out) {
case 'b':
vOut = 4*Math.PI*Math.pow(outR,3)/3;
//Math.PI是java的类库中提供的常量。CPP中没有的话可以作替换。
//Math.pow是java类库中提供的立方计算方法。也可以做相应替换。
break;
case 'c':
vOut = Math.pow(outR, 3);
break;
default:
throw new Exception("小六暂时还变不出这种形状的西瓜呢~");
}
switch (inside) {
case 'b':
vInside = 4*Math.PI*Math.pow(insideR,3)/3;
//Math.PI是java的类库中提供的常量。CPP中没有的话可以作替换。
//Math.pow是java类库中提供的立方计算方法。也可以做相应替换。
break;
case 'c':
vInside = Math.pow(insideR, 3);
break;
default:
throw new Exception("小六暂时还变不出这种形状的西瓜呢~");
}
if ((vOut-vInside)>v) {
return "YES";
}
return "NO";
}
大概思路应该是这样,我没学过C++语法,用js语法为例写的:
窗体设定:
1、输入框a1,输入体积V
2、输入框a2,输入外壳形状字母+分隔符+半径
3、输入框a3,输入内瓤形状字母+分隔符+半径
4、输出框b,输出结果
定义变量,类型转换
volume = a1;
shapeA1 = a2分隔符前;//形状
shapeA2 = a2分隔符后;
shapeB1 = a3分隔符前;//形状
shapeB2 = a3分隔符后;
定义体积函数,传入参数shape,value,以js为例:
funciton getBallVolume(shape,value){
if(shape == "b"){
return Math.pow(value,3); //求立方体体积,返回结果
}
else if(shape == "c"){
return (3/4)*3.1415926*Math.pow(value,3) //求球体体积,返回结果
}
};
定义变量计算体积,和输入的体积对比:
volumeInner = getBallVolume(shapeA1,shapeA2)+getBallVolume(shapeB1,shapeB2);
如果volumeInner > volume,那么输出框b显示YES,否则显示NO
[查看全文]
本帖最后由 断乱 于 2018-2-27 00:03 编辑
如题#km今天遇到一个奇葩问题绞尽脑汁都想不出来,求各位路过的大神帮帮忙,【复式消费】是什么意思!!!!!!!!!!
public class Change {
public String change(String m){
StringBuffer re=new StringBuffer("");
int i=0;
int j=0;
i=m.lastIndexOf(".");
if(i==-1) i=m.length();
String b=m.substring(0, i);
char[] c=b.toCharArray();
StringBuffer s=null;
for(i=c.length-1,j=0;
i>=0;i--,j++){
s=new StringBuffer("");
if(i!=c.length-1 && c[i+1]!='0') s.append(changeNum(c));
if(c!='0'){
switch (j%4){
case 1:s.append("拾");
break;
case 2:s.append("佰");
break;
case 3:s.append("仟");
break;
default :break;
}
}
if(j!=0 && j%8==0) s.append("亿");
else if (j!=0 && j%4==0){
s.append("万");
}
re=s.append(re);
}
re.append("元");
i=m.lastIndexOf(".");
String d=null;
if(i!=-1){
d=m.substring(i+1,m.length());
char[] e=d.toCharArray();
if(e.length==1) if(e[0]!='0')
re.append("零").append(changeNum(e[0])).append("角").toString();
if(e.length==2) if(e[0]!='0' || e[1]!='0')
re.append("零");
if(e[0]!='0')
re.append(changeNum(e[0])).append("角").toString();
if(e[1]!='0')
re.append(changeNum(e[1])).append("分").toString();
}
return re.toString();
}
public String changeNum(char c){
String[] n={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; return n[c-'0'];
}
public static void main(String[] args) {
Change c=new Change(); System.out.print(c.change("123458.78"));
}
}
之前没有学过c语言,突然需要写c语言程序。一头雾水,跪求大神帮忙!!!!!!!
1.已知一个字母组成的字符串密钥,明文密文均为英文字母,且不分大小写。试编写C语言程序(或伪代码),实现单表密码加密。输入明文,输出密文。
2.已知一个字母组成的字符串密钥,明文密文均为英文字母,且不分大小写。试编写C语言程序(或伪代码),实现置换密码加密。输入明文,输出密文。
C#与C++的对比今天我用C++和C#同时写了计算长方体的体积 同时也反应了C++与C#的区别
C#
Console.WriteLine("by skyler qq206268322");
Console.WriteLine("请输入长方形的长:");
int Length = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入长方形的宽:");
int Width = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入长方形的高:");
int Height = Convert.ToInt32(Console.ReadLine());
int S = Length * Width * Height;
Console.WriteLine("长方形的体积为:{0}", S);
Console.ReadKey();
C++的代码
#include <stdio.h>
int V(int Length,int Width,int Height);
int main()
{
int m_length,m_width,m_height,result,qq;
printf ("by skyler QQ206268322\n");
printf("请输入长方体的长:\n");
scanf("%d",&m_length);
printf("请输入长方体的宽:\n");
scanf("%d",&m_width);
printf("请输入长方体的高:\n");
scanf("%d",&m_height);
result=V(m_length,m_width,m_height);
printf("长方形的体积为:\n");
printf("%d\n",result);
printf ("by skyler QQ206268322");
scanf("%d",qq);
return 0;
}
int V(int Length,int Width,int Height)
{
int result;
result=Length*Width*Height;
return result;
}