「java、n」java匿名内部类的写法
本篇文章给大家谈谈java、n,以及java匿名内部类的写法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java 求N
对于
for(i=1;i=n;i++)){
fact=fact*i;
}
当i==1,fact = fact * 1 == 1 * 1
当i==2,fact = fact * 2 == 1 * 1 * 2
当i==3,fact = fact * 3 == 1 * 1 * 2 * 3
因为N!很大,所以用long表示还是嫌小。通常不会用int,long来表示。
会转义成char[](人工模拟)或者如下。
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int count = 0;
BigInteger sum = null;
while (scanner.hasNext()) {
count = scanner.nextInt();
sum = BigInteger.valueOf(1);
for (int i = 1; i = count; i++) {
sum = sum.multiply(BigInteger.valueOf(i));
}
System.out.println(sum);
}
scanner.close();
}
}
如果需要重复的计算N!。
当N非常大时,每一次计算都会耗费非常多的时间。
所以会打一个表。用来保存计算过的N!。以空间换取时间。
确保在打表范围内,每一个N只会计算一次N!
package zhidao;
import java.math.BigInteger;
import java.util.Scanner;
public class N {
private static final int MAX = 1000;
private static BigInteger bis[] = new BigInteger[MAX];
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int n = 0;
BigInteger sum = null;
while (scanner.hasNext()) {
n = scanner.nextInt();
sum = BigInteger.valueOf(1);
// 方法1
// for (int i = 1; i = n; i++) {
// sum = sum.multiply(BigInteger.valueOf(i));
// }
sum = fact(n);
System.out.println(sum);
}
scanner.close();
}
public static BigInteger fact(int n) {
if (n == 0) {
bis[0] = BigInteger.valueOf(1);
return bis[0];
}
if (n MAX bis[n] != null) {
return bis[n];
}
System.out.println("calc" + n + "!");
BigInteger sum = BigInteger.valueOf(n).multiply(fact(n - 1));
bis[n] = sum;
return bis[n];
}
}
console:
20
calc20!
calc19!
calc18!
calc17!
calc16!
calc15!
calc14!
calc13!
calc12!
calc11!
calc10!
calc9!
calc8!
calc7!
calc6!
calc5!
calc4!
calc3!
calc2!
calc1!
2432902008176640000
20
2432902008176640000
22
calc22!
calc21!
1124000727777607680000
可以看到,计算过的数据就不会重复计算了。
但是这又引入了一个新的问题。
就是当递归的长度过长的时候会导致stackoverflow,这又是另一说了。
我来修正一个错误;
if (n MAX) {
bis[n] = sum;
}
return sum;
当n=1000时。
402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
java:杨辉三角,输入n输出它的前n行
以下是 Java 代码,用于生成杨辉三角并输出前 n 行:
```java
import java.util.Scanner;
public class YangHuiTriangle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the number of rows: ");
int numRows = scanner.nextInt();
for (int i = 0; i numRows; i++) {
int num = 1;
System.out.printf("%" + (numRows - i) * 2 + "s", ""); // 控制输出格式
for (int j = 0; j = i; j++) {
System.out.printf("%4d", num);
num = num * (i - j) / (j + 1); // 计算组合数
}
System.out.println();
}
}
}
```
在这个示例中,我们首先使用 `Scanner` 类读取用户输入的行数 `numRows`。然后,我们使用两个嵌套的循环来生成杨辉三角。外部循环控制行数,内部循环控制每一行的元素。
在内部循环中,我们使用了公式 `num = num * (i - j) / (j + 1)` 来计算杨辉三角中的组合数,并使用 `printf()` 方法以规定的格式输出结果。
最后,我们使用 `%n`(代表换行符)和 `printf()` 方法在控制台上输出前 n 行杨辉三角。
例如,在以上程序中输入 `6`,将会输出以下结果:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
java中/n和/r有什么区别
\r与\n合起来就是回车换行的意思,回车是将光标移到当前行的行首;换行是将光标移到当前行的下一行,但还是同一列,不会回到行首。它们合起来可以将光标移到下一行的行首,也就是回车并换行。但在不同的系统中它们的功能也不太相同。比如在windows里,\r\n表示回车换行;但在linux中\n就代表回车换行。这也是为什么在linux下用vim打开windows编辑的文件会发现在每一行尾都有个^m字符的原因。
javan/100代表什么意思
1. 下列不可作为java语言标识符的是(D)
A) a1 B) $1 C) _1 D) 11
2. 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A)
A) a1.java B) a1.class C) a1 D) 都对
3. 整型数据类型中,需要内存空间最少的是(D)
A) short B) long C) int D) byte
4. Java 类可以作为(C)
A) 类型定义机制
B) 数据封装机制
C) 类型定义机制和数据封装机制
D) 上述都不对
5. 在创建对象时必须(C)
A) 先声明对象,然后才能使用对象
B) 先声明对象,为对象分配内存空间,然后才能使用对象
C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D) 上述说法都对
6. 在调用方法时,若要使方法改变实参的值,可以(B)
A) 用基本数据类型作为参数
B) 用对象作为参数
C) A和B都对
D) A和B都不对
7. Java中(C)
A) 一个子类可以有多个父类,一个父类也可以有多个子类
B) 一个子类可以有多个父类,但一个父类只可以有一个子类
C) 一个子类可以有一个父类,但一个父类可以有多个子类
D) 上述说法都不对
8. Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B)
A) 安全性B) 多线性C) 跨平台D) 可移植
9. Character流与Byte流的区别是(C)
A) 每次读入的字节数不同B) 前者带有缓冲,后者没有
C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用
10. 以下声明合法的是( D )
A、default String s;
B、public final static native int w( )
在java中 %n和\n的区别是?
%n 和 \n 的区别就是,%n会根据平台,自动转化成合适的换行符, \n适用于大部分平台。
%n只能用在printf语句中,无法用在println和print中
java、n的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java匿名内部类的写法、java、n的信息别忘了在本站进行查找喔。
发布于:2023-03-18,除非注明,否则均为
原创文章,转载请注明出处。