作者monomorium (旅人的足迹)
看板java
标题Re: [承上面]67个if的美学果然不适合小弟...
时间Wed Oct 17 07:11:24 2012
※ 引述《JazzChen (PhoenixJazz)》之铭言:
: //random number
: int[] D = new int[4];
: D[0] = (int) (Math.random()*10);
: do{
: D[1]=(int) (Math.random()*10);
: } while(D[0] == D[1]);
: do{
: D[2]=(int) (Math.random()*10);
: } while(D[0] == D[2] || D[1] == D[2]);
: do{
: D[3]=(int) (Math.random()*10);
: } while(D[0] == D[3] || D[1] == D[3] || D[2] == D[3]);
想像有一个装着十个号码牌的篮子
每次从篮子中抽出一张号码牌不放回
抽四次就可以得到四个不重复的数字
: //判断A & B
: int[] R = new int[4];
: int a = 0;
: int b = 0;
: int g = sc.nextInt();//假设前面已宣告过sc了
: for(int i=3; i>=0; i--) {
: R[i] = g%10;
: g = g/10;
: } //把输入的值设为阵列
: for(int i=0; i<4; i++) //判断A
: if (D[i] == R[i]) a++;
: for(int i=0; i<4; i++) //判断B
: for(int j=0; j<4; j++)
: if (i!=j && D[i] == R[j]) b++;
建议判断A、B用字元阵列阵列比较理想
例如答案是 0123 ,这样的答案会不存在
况且没有处理使用者输入相同数字的情况
例如输入 1111 ,如果有 1 ,就会得到 1A3B
: //输出输入便不写了,偷懒一下
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.143.192
1F:→ JazzChen:一般来说猜数字好像不会用同样的数字,不过在判断输入上 10/17 15:07
2F:→ JazzChen:或许可以更严谨一些,谢谢指教 10/17 15:15