用java生成表
我试图通过接受用户输入来用java创建表。因此,对于这三种情况,表应该如下所示: 我正在寻找任何关于如何着手做这件事的想法-可能只是伪代码会有帮助,我可以填补空白。谢谢您的帮助:)尝试递归。 该方法将接受一个字符串,然后递归,添加一个0或1,直到找到一个最大大小,此时它打印出值并返回用java生成表,java,string,Java,String,我试图通过接受用户输入来用java创建表。因此,对于这三种情况,表应该如下所示: 我正在寻找任何关于如何着手做这件事的想法-可能只是伪代码会有帮助,我可以填补空白。谢谢您的帮助:)尝试递归。 该方法将接受一个字符串,然后递归,添加一个0或1,直到找到一个最大大小,此时它打印出值并返回 method(string a, int max) { if (stopping condition reached?) { print(a); } else { recurse
method(string a, int max)
{
if (stopping condition reached?)
{
print(a);
}
else
{
recurse with 0 + a
recurse with 1 + a
}
}
我已经试着让它保持打开状态,因此您仍有工作要做
var input = 3; // Read 3 from user
var lines = 1 << input;
var i, j;
for(i = 0; i < lines; i++){
var str = "";
for(j = input - 1; j >= 0; j--){
if(i & 1 << j)
str += "1";
else
str += "0";
}
document.write(str + "<br />");
}
var输入=3;//从用户处读取3
变量线=1=0;j——){
如果(i&1您可以使用从0到2^n-1的循环
for (int i = 0; i < 1 << n; i++) {
// print i in binary form
// (print only the last n bits)
}
for(int i=0;i<1不是最优雅的,但它会生成您描述的值。不是输入验证或任何东西,因此有改进的余地
// This should be set as input, hardcoding for example
int lines = 3;
char[] fill = new char[lines];
Arrays.fill(fill, '0');
String resultTemplate = new String(fill);
int maxNum = (int) Math.pow(2, lines);
for(int index = 0; index < maxNum;index++)
{
String binaryString = Integer.toBinaryString(index);
System.out.println(resultTemplate.substring(0,lines-binaryString.length()) + binaryString);
}
//这应该设置为输入,例如硬编码
整数行=3;
字符[]填充=新字符[行];
数组。fill(fill,'0');
String resultTemplate=新字符串(填充);
intmaxnum=(int)Math.pow(2行);
对于(int index=0;index
int n=3,长度;
字符串前面=”;
对于(inti=0;i<10)front=new字符串(new char[length])。替换(“\0”,“0”);
系统输出打印项次(前+箱);
}
输出:
000
001
010
011
100
101
110
111
包javaa;
导入java.util.Scanner;
公共类可复用{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
int n=0,x=0;
做
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“起始范围:”);
x=sc.nextInt();
System.out.println(“输入结束范围:”);
n=sc.nextInt();
对于(int i=x;i),问题是我不知道何时添加零或一。就像我脑子里有递归部分,但我不知道如何设置递归。请记住,“添加”可能意味着“开始插入”如果示例中所述的顺序是必需的。递归在这里完全是多余的。您需要同时执行这两项操作,一次执行一项。第一个递归调用将分支出,直到尝试该分支上的所有值,然后您回到函数,第二个递归调用将分支出,直到该分支上的所有值都被执行。@Oli His教授可能正试图让他通过这个例子来学习它。如果你在理解它时有任何困难,请告诉我。更优雅、更符合imo标准的解决方案是使用printf()
以及获得零填充的正确格式选项。也许也可以去掉math.pow,但可能这对我来说更明显。如果输入范围,将获得乘法表的输出
int n=3,length;
String front="";
for (int i = 0; i < 1 << n; i++) {
front="";
String bin= Integer.toBinaryString(i);
if((length=n-bin.length())>0) front=new String(new char[length]).replace("\0", "0");
System.out.println(front+bin);
}
package javaa;
import java.util.Scanner;
public class MulTable {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n = 0,x = 0;
do
{
Scanner sc = new Scanner(System.in);
System.out.println("start range:");
x = sc.nextInt();
System.out.println("enter the end range:");
n = sc.nextInt();
for(int i = x; i <= n; i++)
{
for(int j = 1; j <= 10; j++)
{
System.out.println(i + "*" + j + "=" + (i*j));
}
}
}
while((n!=9)||(x!=9));
}
}