我想用这个方案来格式化俄罗斯农民乘法:问题是它不能处理更大的数字。
47 * 42
-------
23 84
11 168
5 336
2 672
1 1344
=======
1974
但当我的数字较大时,我的格式不匹配:
470 * 420
---------
235 840
117 1680
58 3360
29 6720
14 13440
7 26880
3 53760
1 107520
=========
197400
它应该是这样的:
470 * 420
----------
235 840
117 1680
58 3360
29 6720
14 13440
7 26880
3 53760
1 107520
==========
197400
他们是一种为变量设置格式的方法吗?我目前已经用-和M硬编码了它?
这是我当前的代码:
public class Main {
public static void main (String[] args) {
int num1=47;
int num2=42;
int product=0;
String testNum1 = "";
String testNum2 = "";
if(num1%2!=0)
product=product+num2;
System.out.println(num1 + " * "+num2);
int printLength = String.valueOf(num1).length() + String.valueOf(num2).length() + 3;
for (int i = 0; i < printLength; i++){
System.out.print('-');
}
System.out.println();
while(num1!=1)
{
num1=num1/2;
num2=num2*2;
int x = String.valueOf(num1).length();
if(num1%2!=0)
product=product+num2;
testNum1 = String.format("%2d", num1);
testNum2 = String.format("%4d", num2);
System.out.println(testNum1 + " " + testNum2);
}
for (int i = 0; i<printLength; i++){
System.out.print("=");
}
System.out.println();
System.out.print(" ");
System.out.print(product);
}
}
-
和M
硬编码导致故障。有多种方法可以实现此模式。下面,你可以找到懒惰的人:P。
另外,你需要照顾-----
//changes
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
int maxLength1 =0;
int maxLength2 =0;
while(num1!=1)
{
num1=num1/2;
num2=num2*2;
int x = String.valueOf(num1).length();
if(num1%2!=0)
product=product+num2;
String s1 = ""+num1;
String s2 = ""+num2;
list1.add(s1);
list2.add(s2);
maxLength1 = maxLength1>s1.length()?maxLength1:s1.length(); //getting the max length for both numbers
maxLength2 = maxLength2>s2.length()?maxLength2:s2.length();
}
//main printing lines
for (int i = 0; i < list1.size(); i++) {
//calculating and adding required spaces for both numbers.
int firstSpace = maxLength1 - list1.get(i).length() ;
String space1 = new String(new char[firstSpace]).replace('\0', ' ');
int secondSpace = maxLength2 - list2.get(i).length() ;
String space2 = new String(new char[secondSpace]).replace('\0', ' ');
System.out.println(space1+list1.get(i)+" "+space2+list2.get(i));
}
//changed here for better visual representaion
for (int i = 0; i<=(maxLength1+maxLength2) ; i++){
System.out.print("=");
}
System.out.println();
System.out.print(" ");
System.out.print(product);
在线演示
本章实现一个俄罗斯方块游戏。 简介 俄罗斯方块游戏是有史以来最受欢迎的电脑游戏之一。最初的游戏是由俄罗斯程序员 Alexey Pajitnov 在1985年设计并编写的。从那时起,《俄罗斯方块》便以多种形式出现在几乎所有平台上。 俄罗斯方块被称为掉落方块拼图游戏。在这款游戏中,我们有7种不同的形状,叫做砖块(tetrminoes):S形、Z形、T形、L形、线形、反向L形和方形。每个形状都是由四个正
本章我们要制作一个俄罗斯方块游戏。 Tetris 译注:称呼:方块是由四个小方格组成的 俄罗斯方块游戏是世界上最流行的游戏之一。是由一名叫Alexey Pajitnov的俄罗斯程序员在1985年制作的,从那时起,这个游戏就风靡了各个游戏平台。 俄罗斯方块归类为下落块迷宫游戏。游戏有7个基本形状:S、Z、T、L、反向L、直线、方块,每个形状都由4个方块组成,方块最终都会落到屏幕底部。所以玩家通过控制
趣味俄罗斯方块 功能结构图 业务流程图 游戏欢迎界面 代码实现 #include <stdio.h> #include <time.h> #include <windows.h> #include <conio.h> /*******宏 定 义*******/ #define FrameX 13 //游戏窗口左上角的X轴坐标 #define FrameY 3
本章我们要制作一个俄罗斯方块游戏。 Tetris 译注:称呼:方块是由四个小方格组成的 俄罗斯方块游戏是世界上最流行的游戏之一。是由一名叫 Alexey Pajitnov 的俄罗斯程序员在 1985 年制作的,从那时起,这个游戏就风靡了各个游戏平台。 俄罗斯方块归类为下落块迷宫游戏。游戏有 7 个基本形状:S、Z、T、L、反向 L、直线、方块,每个形状都由 4 个方块组成,方块最终都会落到屏幕底部
利用cocos2d-x实现俄罗斯方块游戏的简单功能。其中只实现了一种方块,有兴趣的话可以自己添加一些块。只能在Retina硬件模式下才能正常显示。 作者说:如果有好的建议亲记得联系我632272261@qq.com。 [Code4App.com]
是否有可能在Java中创建一个加载(或更恰当地重新加载)自己的类加载器? 它最初可以由默认的类加载器加载。我想象一个Java系统能够在运行时通过编译和加载循环进行自我修改。如果是这样,您可以创建许多从您的俄罗斯玩偶加载器继承的对象,以动态更新其逻辑。