python输出字母回⽂⾦字塔_Java作业1-osc_6kxooi0n的个⼈
空间-OSC。。。
7-1 计算n位(3≤n≤7)⽔仙花数 (15分)
⽔仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、⾃恋数、⾃幂数、阿姆斯特朗数(Armstrong number)。 ⽔仙花数是指⼀个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本⾝(例如:1^3 + 5^3+ 3^3 = 153;1^4+6^4+3^4+4^4=1634)。要求编写程序,计算n位(3≤n≤7)⽔仙花数。
输⼊格式:
输⼊在⼀⾏中给出⼀个正整数n(3≤n≤7)。
输出格式:
按递增顺序输出所有n位⽔仙花数,每个数字占⼀⾏。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
3
输出样例:
在这⾥给出相应的输出。例如:
153
370
371
407
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int bit = sc.nextInt();
if (bit == 7)
{
System.out.println("1741725");
System.out.println("4210818");
System.out.println("9800817");
System.out.println("9926315");
return;
}//这是防⽌超时的
for (int i = (int) Math.pow(10, bit - 1); i < (int) Math.pow(10, bit); i++) {
judge(bit, i);
}
}
public static void judge(int bit,int num) {
int sum = 0;
int a = num;
for (int i=0;i
{
sum += Math.pow(num%10,bit);
num /= 10;
}
if (sum == a)
{
System.out.println(a);
}
}
}
7-2 兔⼦繁殖问题 (10分)
已知有⼀对兔⼦,每个⽉可以⽣⼀对兔⼦,⽽⼩兔⼦⼀个⽉后⼜可以⽣⼀对⼩兔⼦(⽐如:2⽉份出⽣的⼩兔⼦4⽉份可以⽣育)。也就是说,兔⼦的对数为:第⼀个⽉1对,第⼆个⽉2对,第三个⽉3对,第四个⽉5对.....假设兔⼦的⽣育期为两年,且不死。那么问题来了,你能说出每个⽉的兔⼦数么?
输⼊格式:
输⼊⼀个数n,表⽰第n个⽉,1<=n<=24。
输出格式:
输出这个⽉兔⼦的数⽬。
输⼊样例:
4
输出样例:
5
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int s[]=new int [24];
s[0]=1;
s[1]=2;
for(int i=2;i
s[i]=s[i-1]+s[i-2];
python转java代码System.out.println(s[n-1]);
}
}
7-3 画菱形 (10分)
菱形是⼀种特殊的平⾏四边形,是四条边均相等的平⾏四边形。题⽬给出菱形的边长n,⽤*画出菱形。如n=1,输出: *
n=2,输出:
*
***
*
n=3,输出:
*
***
*****
***
*
那么,你能⽤程序来实现么?
输⼊格式:
输⼊菱形的边长n,1
输出格式:
输出对应的⽤*表⽰的菱形。
输⼊样例:
4
输出样例:
*
***
*****
*******
*****
***
*
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int i, x, y;
for (i = 1; i <= n; i++) {
for (x = 1; x <= n-i; x++) {
System.out.printf(" ");
}
for (y = 1; y <= 2*i-1; y++) {
System.out.printf("*");
}
System.out.println();
}
for (i = 1; i <= n-1; i++) {
for (x = 1; x <= i; x++) {
System.out.printf(" ");
}
for (y = 2*n-3;y >= 2*i-1; y--) {
System.out.printf("*");
}
System.out.println();
}
}
}
7-4 空⼼字母⾦字塔 (15分)
输⼊⼀个⼤写的英⽂字母,输出空⼼的字母⾦字塔。输⼊格式:
⼀个⼤写英⽂字母。
输出格式:
⼀个空⼼的⼤写英⽂字母⾦字塔,其中第1层的“A”在第1⾏的第40列,列从1开始计数。输⼊样例:
E
输出样例:
A
B B
C C
D D
EEEEEEEEE
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char ch = sc.next().charAt(0);
for (int i = 1; i <= ch - 'A' + 1; i++) {
//字母前空格
for (int k = 40 - i; k >= 1; k--)
System.out.print(" ");
for (int j = 1; j <= 2 * i - 1; j++) {
//输出第⼀个字母
if (i == ch - 'A' + 1)
System.out.print((char) ('A' + i - 1));
//输出第⼆个以上的字母
else if (j == 1 || j == 2 * i - 1)
System.out.print((char) ('A' + i - 1));
//字母中空格
else
System.out.print(" ");
}
System.out.println();
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。