《java趣味编程100实例》由会员分享,可在线阅读,更多相关《java趣味编程100实例(16页珍藏版)》请在金锄头文库上搜索。
1、文档供参考,可复制、编制,期待您的好评与关注! 1_1问题描述:根据福利彩票的规则,6个蓝色球,范围1-32,不允许重复,1个红色球,范围1-16,自动生存6个蓝色球,1个红色球。import java.util.Arrays; import java.util.Random; import java.util.Scanner;public class Ch11_2 /* * 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * param begin 最小数字(包含该数) * param end 最大数字(不包含该数) * param size 指定产生随机数的个数 *
2、 * 实现思路:首先定义一个方法,使它能够产生6个不重复的蓝色随机数,存放到数组中, * 再产生1个红色随机数,最后他们组合在一起就是题目所求 */ public static int generateRandomNumber(int begin, int end, int size) / 加入逻辑判断,确保begin= end | (end - begin) size) return null; / 种子你可以随意生成,但不能重复 里面存放的是你的取值范围 /本题就是 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3、 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 int seed = new intend - begin; for (int i = begin; i end; i +) seedi - begin = i; int ranArr = new intsize; Random ran = new Random(); / 数量你可以自己定义。 这里生成了6个蓝色球的号码 for (int i = 0; i =lenB) templen=lenA-lenB; addB=maxlen(addB,templen);/调整长度,使其跟大数长
4、度一致 else templen=lenB-lenA; addA=maxlen(addA,templen); char addcharA=addA.toCharArray(); char addcharB=addB.toCharArray(); int len=addcharA.length; int valueC=new intlen; for(int i=0;i=0;i-) if(valueCi=10) strvalue=String.valueOf(valueCi+tmp-10)+strvalue; tmp=valueCi/10; else strvalue=String.valueOf
5、(valueCi+tmp)+strvalue; tmp=0; return strvalue; /调整长度,使其长度一样 private static String maxlen(String str,int templen) String strmax=null; StringBuffer buff=new StringBuffer(); for(int i=0;itemplen;i+) buff.append(0); strmax=buff.toString()+str; return strmax; 1_3 尾数前移问题描述:求一个自然数N,个位数是6,将6提到最前面得到的数是N的4倍
6、public class Ch11_5 /* * 问题分析:1 假设这个数是n6(n是从1开始的正整数) * 2 满足关系 6n=4*(n6) * 3 n6=n * 10 + 6; 6n=6 * Math.pow(10,i) + n; i代表的是6处在的是十位还是百位等等 (十位 i=1.) * param args */public static void main(String args) int n = 0;/代表6的前面部分,“n6”int N;/6移动前,即N=n6int M;/6移动到数字首部后,即M=6nint buf;int i = 0;/代表数字的长度while(true)/穷举