Day15---学习Java第三弹
2021-07-25
Java经典例题(三)
5、题目:判断101-200之间有多少个素数,并输出所有素数。
package test;
public class Main {
public static void main(String[] args) {
int sum = 0;
math mymath = new math();
for(int i = 101; i <= 200; i ++)
{
if(mymath.sushu(i)) {
sum ++;
System.out.println(i);
}
}
System.out.println(sum);
}
}
class math
{
public boolean sushu(int x )
{
if(x <= 2)
{
return true;
}
for(int i = 2; i < x/2; i ++)
{
if(x % i == 0)
{
return false;
}
}
return true;
}
}
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
6、
打印出杨辉三角形(要求打印出10行如下图)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…………
package test2;
public class test33 {
public static void main(String[] args) {
int[][] a = new int[10][10];
for (int i = 0; i < 10; i++) {
a[i][i] = 1;
a[i][0] = 1;
}
for (int i = 2; i < 10; i++) {
for (int j = 1; j < i; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 2 * (a.length - i) - 1; k++) {
System.out.print(" ");
}
for (int j = 0; j <= i; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}
程序分析:除了第一行和每行第一个元素之外,其余的每行的第x个元素都等于上一行的的第x-1个元素和第x个元素之和
需要注意的点:需要注意最后两个for循环是如何输出的,输出了几个
7、打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花
数 ",因为153=1的三次方+5的三次方+3的三次方。
public class exp2{
public static void main(String args[]){
int i=0;
math mymath = new math();
for(i=100;i<=999;i++) {
if(mymath.shuixianhua(i)==true)
System.out.println(i);
}
}class math
{ public int f(int x)
{ if(x==1 || x==2) return 1; else
return f(x-1)+f(x-2);
}public boolean iszhishu(int x)
{ for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false; return true;
}public boolean shuixianhua(int x)
{ int i=0,j=0,k=0;
i=x / 100;
j=(x % 100) /10;
ik=fx % 10; (x==i*i*i+j*j*j+k*k*k) return true; else
return false;
}
}
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位
8、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相
加有键盘控制。
import java.io.*;
public class Sumloop {
public static void main(String[] args) throws IOException
{
int s=0;
int n;
int t=0;
BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in));
String input = stadin.readLine();
fno=rInteger.parseInt(input);
(int i=1;i<=n;i++){
t=t*10+n;
s=s+t;
System.out.println(t);
}
System.out.println(s);
}
}
程序分析:分开拆出每一个数