java趣味编程100实例

上传人:壹****1 文档编号:418282811 上传时间:2023-11-25 格式:DOCX 页数:15 大小:29.12KB
返回 下载 相关 举报
java趣味编程100实例_第1页
第1页 / 共15页
java趣味编程100实例_第2页
第2页 / 共15页
java趣味编程100实例_第3页
第3页 / 共15页
java趣味编程100实例_第4页
第4页 / 共15页
java趣味编程100实例_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《java趣味编程100实例》由会员分享,可在线阅读,更多相关《java趣味编程100实例(15页珍藏版)》请在金锄头文库上搜索。

1、.1_1问题描述:根据福利彩票的规则,6个蓝色球,X围1-32,不允许重复,1个红色球,X围1-16,自动生存6个蓝色球,1个红色球。importjava.util.Arrays; importjava.util.Random; importjava.util.Scanner;publicclass Ch11_2 /* * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * param begin 最小数字(包含该数) * param end 最大数字(不包含该数) * param size 指定产生随机数的个数 * * 实现思路:首先定义一个方法,使它能够产生6个不重

2、复的蓝色随机数,存放到数组中, * 再产生1个红色随机数,最后他们组合在一起就是题目所求 */publicstaticint generateRandomNumber(int begin, int end, int size) / 加入逻辑判断,确保begin= end | (end - begin) size) returnnull; / 种子你可以随意生成,但不能重复里面存放的是你的取值X围/本题就是 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,

3、27, 28, 29, 30, 31, 32int seed = newintend - begin; for (int i = begin; i end; i +) seedi - begin = i; int ranArr = newintsize; Random ran = newRandom(); / 数量你可以自己定义。这里生成了6个蓝色球的for (int i = 0; i =lenB) templen=lenA-lenB;addB=maxlen(addB,templen);/调整长度,使其跟大数长度一致elsetemplen=lenB-lenA;addA=maxlen(addA,

4、templen); charaddcharA=addA.toCharArray();charaddcharB=addB.toCharArray();intlen=addcharA.length;intvalueC=newintlen;for(int i=0;i=0;i-) if(valueCi=10) strvalue=String.valueOf(valueCi+tmp-10)+strvalue;tmp=valueCi/10;elsestrvalue=String.valueOf(valueCi+tmp)+strvalue;tmp=0; returnstrvalue; /调整长度,使其长度一

5、样privatestatic String maxlen(String str,inttemplen) String strmax=null;StringBuffer buff=newStringBuffer();for(int i=0;itemplen;i+) buff.append(0); strmax=buff.toString()+str;returnstrmax; 1_3尾数前移问题描述:求一个自然数N,个位数是6,将6提到最前面得到的数是N的4倍publicclass Ch11_5 /* * 问题分析:1 假设这个数是n6(n是从1开始的正整数) * 2 满足关系 6n=4*(n6

6、) * 3 n6=n * 10 + 6; 6n=6 * Math.pow(10,i) + n; i代表的是6处在的是十位还是百位等等 (十位 i=1.) * paramargs */publicstaticvoid main(String args) int n = 0;/代表6的前面部分,“n6”int N;/6移动前,即N=n6int M;/6移动到数字首部后,即M=6nintbuf;int i = 0;/代表数字的长度while(true)/穷举/移动前N = n * 10 + 6;buf = n;/计算数字的长度,确定6移到首部的权重,即:6代表的是十位还是百位等等while(buf!

7、=0) i+;buf = buf/10; /移动后 M = (int)(6 * Math.pow(10,i) + n;/条件满足,输出,退出循环if(M = (4*N) System.out.print(要找的数为:+N);break; n+;/穷举变量修改 i = 0;/长度值复位1_4国际象棋有八行八列,64个单元格,在棋盘上摆放八个皇后,使其不能相互攻击,就是说任意两个皇后不能处在同一行,同一列或同一斜线上,问一共有多少中摆法importjava.util.Arrays;publicclass Ch11_6 staticintresult=0;staticint WeiZhi=newin

8、t8;/全局数组,下标代表行,里面的元素代表列(就是我们上算法分析的解向量)staticvoidEightQueen(int n)/ 算法inti,j;intct;/用于判断是否冲突,1代表不冲突if (n = 8)/若8个皇后已放置完成 System.out.println(Arrays.toString(WeiZhi);result+;return; for (i = 1; i = 8; i+)/试探 WeiZhin = i;/在该列的第i行上放置/断第n个皇后是否与前面皇后形成攻击ct=1;for (j = 0; j n; j+) if (WeiZhij = WeiZhin)/ 形成攻击 ct=0; elseif (Math.abs(WeiZhij - WeiZhin) = (n

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号