import javautilArrayList;
/
一元钱硬币有多少种表达方式
可供选择:1分,2分,5分,1角,2角,5角,1元
如:
1元=1元;
1元=5角+5角;
/
public class Test {
private static int count;
public static void main(String args[]){
int max = 100;//一元
int[] cents = {100,50,20,10,5,2,1};//币值
String[] money = {"1元","5角","2角","1角","5分","2分","1分"};
ArrayList collect = new ArrayList();
collectMoney(cents, money,0, max, 0, collect);
Systemoutprintln("总共有"+count+"种搭配方法!");
}
public static void collectMoney(int[] cents,String[] money,int beginIndex,int max,int result,ArrayList collect){
if(result>=max){
if(result==max){
count++;
Systemoutprint("1元=");
for(int i=0;i<collectsize();i++){
Systemoutprint(money[(Integer) collectget(i)]);
if(i<collectsize()-1){
Systemoutprint("+");
}
}
Systemoutprintln();
}
return;
}
for(int i=beginIndex;i<centslength;i++){
int cent = cents[i];
collectadd(i);
collectMoney(cents, money,i, max, result+cent, collect);
collectremove(IntegervalueOf(i));
}
}
}
/
2015年1月15日下午11:36:48 测试通过,望采纳
@author season
/
public class ChangeMoney {
/
getMethodTotal TODO 获取换取的多少种方法
@param yourMoney 想要换的钱
@return int 返回方法总数
/
public static int getMethodTotal(int yourMoney){
int method = 0;
for(int one =1; one<=98; one++)
for(int two =1; two<=49; two++)
for(int five =1; five <=19; five++)
if(one+two+five==100)
method++;
return method;
}
public static void main(String[] args){
Systemoutprintln("\nThe total is: "+getMethodTotal(1));
}
}
1int Sum=100;//1元为100分
for (int i=0;i//i为5分的数量;
for(int j=0;i//j为2分的数量;
for(int k=0;k//k为1分的数量。
int num=5i+2j+5;
int Cou=i+j+k;
if(num==Sum&&cou==50) response
write(num); }
} }
2public class Money {
/ @param args /
public static void main(String[] args) {
// TODO Auto-generated method stub for(int i = 0;i for(int j = 0;j for(int z = 0;z if((1 i) + (2 j) + (5 z) == 100){ Systemoutprintln("第" + i + "种情况: "+ "一分的硬币有: " + i + "枚; " + "二分的硬币有: " + j + "枚, " + "五分的硬币有: " + z + "枚");
}
} } } }}
1c++语言的整数常量有三种形式:十进制、八进制、十六迸制。
(1)十进制整数是由不以0开头的0~9的数字组成的数据。
(2)八进制整数是由以0开头的0~7的数字组成的数据。
(3)十六进制整数是由以0x或0x开头的0~9的数字及A~F的字母(大小写字母均可)组成的数据。
例如:
0,63,83是十进制数。
00,077,0123是八进制数。
0x0,Ox0,0x53,0x53,0x3f,0x3f是十六进制数。
2整数常量的取值范围是有限的,它的大小取决于此类整型数的类型,与所使用的进制形式无关
3算法的特性有5个:
有限性:有限步骤内正常结束,不能形成无穷循环。
确定性:算法中的每一个步骤必须有确定含义。
无二义性:算法中不能拥有二义性。
输入或输出:至少有一个或多个输入和输出。
可行性:原则上能精确进行, *** 作可通过已实现基本运算执行有限次而完成。
4、算法、语言、程序的关系:
算法:描述了数据对象的元素之间的关系(包括数据逻辑关系,存储关系描述)
描述算法的工具:算法可用自然语言、框图或高级程序设计语言(如C语言、Java、Python)进行描述。
程序是算法在计算机中的实现。
5、算法性能分析
评价算法的标准:评价一个算法的好坏就是看它的时间和空间,因为空间现在的内存都很大,考虑的比较少,我们主要考虑算法的时间复杂度怎样进行衡量。
性能性价:对问题规模N与该算法在运行时所占的空间S与所耗费的时间T给出一个数量关系的评价。
6问题规模N——对不同的问题其含义不同,对矩阵是阶数;对多项式运算是多项式项数;对图是顶点个数;对集合运算是集合中元素个数。衡量算法效率的方法一般有两种:
①事后统计法,缺点必须执行程序,其他因素会掩盖算法本质。
②事前估算法。
和算法执行时间相关的因素有:
7算法选用的策略,如冒泡排序
问题的规模
编写程序的语言
编译程序产生的机器代码的质量
8计算机执行指令的速度
算法执行时间:大致上等于其所有语句执行时间的总和,对于语句的执行时间是指该条语句的执行次数和执行一次所需时间的乘积。一般针对算法中基本 *** 作语句(源 *** 作)的执行次数做出估计,从中得到算法执行时间的信息
int z=0; //记录正面次数
int f=0; //记录反面次数
for(int i=0;i<1000;i++){
if((int)(Mathrandom()2)==0){
z++; //产生随机数为0时 正面出现次数+1 否则出现的为反面
}else{
f++;
}
}
Systemoutprintln("正面出现次数"+z);
Systemoutprintln("反面出现次数"+f);
以上回答你满意么?
public class Coin {
public static void main(String[] args)
{
int i,j,k;
for(i=1;i<99;i++)
for(j=1;j<99;j++)
for(k=1;k<99;k++)
{{{
if(5i+2j+k==150&&(i+j+k==100))
Systemoutprintln("5分硬币"+i+"枚,"+"2分硬币"+j+"枚,"+"1分硬币"+k+"枚");
}}}
}
}
public class class1{
public static void main(String args[]){
for(int i=1;i<=4;i++)
for(int j=2;j<=8;j+=2)
if(i10+5j==50)
Systemoutprintln(i+"个一角和"+j+"个五分是五角");
}
}
因为你只是算概率,并不是模拟10次抛硬币。算概率的话是数学问题,只要数学会算就可以。
提供一个思路:5次正面朝上的概率+6次正面朝上的概率+……+10次正面朝上的概率。
10次正面朝上的概率是:(1/2)^10
9次正面朝上的概率是:10 (1/2)^9 (1/2)^1
依次类推,不会的话去看看概率论。
如果要模拟的话,就另当别论了。用(int)(Mathrandom()2)来模拟,如果是0就算反面,如果是1就算正面,正面朝上的话计数加1,一轮10次。如果最后计数正面朝上的次数在5-10次的话,成功轮数加1。定一个很大的总轮数,用成功轮数除以总轮数,就是概率
package zhidao;
import javautilArrays;
/
标题:矩阵翻硬币<br>
@author Yugi111
/
public class Q
{
// 假设0表示反面
// 小明先把硬币摆成了一个 n 行 m 列的矩阵。
int[][] qArray = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };
/
随后,小明对“每一个”硬币分别进行 "一次" Q *** 作。<br>
对第x行第y列的硬币进行 Q *** 作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转。
/
private void qTurn ()
{
// 其中i和j为任意使 *** 作可行的正整数 > 0,行号和列号都是从1开始。
for ( int x = 1; x < qArraylength; x++ )
{
for ( int y = 1; y < qArray[x]length; y++ )
{
for ( int i = 1; i < qArraylength / x; i++ )
{
for ( int j = 1; j < qArray[x]length / y; j++ )
{
// 对“每一个”硬币分别进行 "一次" Q *** 作
qArray[i x][j y] = qArray[i x][j y] == 0 1 : 0;
}
}
}
}
}
public static void main ( String[] args )
{
Q q = new Q ();
qqTurn ();
for ( int i = 0; i < qqArraylength; i++ )
{
Systemoutprintln (ArraystoString (qqArray[i]));
}
Systemoutprintln (" 当小明对所有硬币都进行了一次 Q *** 作后,他发现了一个奇迹——所有硬币均为正面朝上。");
Systemoutprintln (" 小明想知道最开始有多少枚硬币是反面朝上的。" + "于是,他向他的好朋友小M寻求帮助。\n " + "聪明的小M告诉小明,只需要对所有硬币再进行一次Q *** 作,"
+ "即可恢复到最开始的状态。然而小明很懒,不愿意照做。" + "于是小明希望你给出他更好的方法。帮他计算出答案");
Systemoutprintln ("\n由于0表示反面,1表示正面 \n 所以: \n");
int count = 0;
for ( int i = 0; i < qqArraylength; i++ )
{
for ( int j = 0; j < qqArray[i]length; j++ )
{
if (qqArray[i][j] == 1)
{
count++;
}
}
}
Systemoutprintln ("最开始有 " + count + " 枚硬币是反面朝上的");
}
}
以上就是关于java编写:计算一元钱硬币有多少种表达方式。例如,可以使用1元钱完成,也可以使用两个5角完成。全部的内容,包括:java编写:计算一元钱硬币有多少种表达方式。例如,可以使用1元钱完成,也可以使用两个5角完成。、java程序题:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法、编写程序实现用一元人民币换成一分、两分、五分的硬币共50枚.。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)