题目分析:拿到题目,我们可以看到,位于第几行那么它所在行的第一个数字和最后一个数字,都是它的行数;我以第四行为例,它的数字为:4 3 2 1 2 3 4 我们可以把这串数字当成y的取值-也就是把它看做是值域,那么它的值域就为[-4,4]
然后我们将1所在的x设为是0,则x的数字就为:-3 -2 -1 0 1 2 3 ,也就是说它的定义域为[-3,3],,我们可以看到它的值域所显示的值就是行数的绝对值,我们用Math,abs(),来表示,定义域给的范围则是(行数-1)的绝对值
我们用i来表示行数的话,那么每一行的数就是从-(i-1)开始,到i-1结束;再看它们的空格数再以第四行为例,假定第四行前没有空格数,第一行是3个,第二行2个,第三行1个,也就可以看出,第一行是(4-1)个,第二行是(4-2)个,第三行是(4-3)个,我们可以发现,空格数=总行数-当前行数
import java.util.*;
class demo14{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.print("请输入数字");
int n=s.nextInt();
for(int i=1;i<=n;i++){//行数
for(int k=1;k<=(n-i);k++){//每一行的空格数
System.out.print(" ");
}
for(int x=-(i-1);x<=i-1;x++){
System.out.printf("%3d",Math.abs(x)+1);//输出为绝对值
}
System.out.println();
}
}
}
题目分析:1.先看第一个图形,这是个比较简单的图形,我们会发现每一行都是从1开始,到当前行数为止,第一行,1;第二行,1,2;......我们可以先将每一行的循环写出来(int i=1,i<=j,i++)--我们将n设为当前行数,在写出行数的循环,(j=1,j<=6;j++)
class demo15{
public static void main(String[] args){
for(int j=1;j<=6;j++){//行数
for(int i=1;i<=j;i++){//当前行的数字
System.out.print(i+" ");
}
System.out.println();//打印完行数时换行
}
2.我们现在看第二个图形,它相比第一个图形能稍难一点,我们会发现它每一行的数字都是从1开始递加的,第一行:1-6,
第二行:1-5,......第六行:1 我们会发现这样一个规律,每一行都是从1开始到7-当前行数结束
for(int j=1;j<=6;j++){
for(int i=1;i<=7-j;i++){
System.out.print(i+" ");
3.我们观察这个图形,首先只观察它数字的变化,每一行的数字都是在递减的一直到1结束,在观察,每一行的的数字是从当前行数所代表的数字开始,其次在观察它的空格变化,假定我们认为第六行没有空格数,则第一行是5个空格数,第二行4个,.....第五行1个,我们我可以发现它其实是6-减去当前行数所得的数
for(int j=1;j<=6;j++){//行数
for(int k=1;k<=Math.abs(j-6);k++){
System.out.print(" ");
}
for(int i=j;i>=1;i--){
System.out.print(i+" ");
}
System.out.println();
4.观察每一行数字的变化,我们会发现每一行的数字都是从1开始,逐步递加的,在观察每一行的末尾数字,第一行:6,第二行:5,......第六行:1我们就可以发现这样一条规律,其实每行数的末尾数字就是7-当前行数;在观察空格的变化,假定从上往下第一行是没有空格数的,第一行:0;第二行:1......一直到第六行:5,空格的变化就是当前行数-1的结果
for(int j=1;j<=6;j++){
for(int k=1;k<=j-1;k++){
System.out.print(" ");
}
for(int i=1;i<=7-j;i++){
System.out.print(i+" ");
}
System.out.println();
}
题目分析:单看这些数字,我们其实发现不了什么规律的,但是其实当你把这些数字拆开就会发现它们其实都是2的次幂
现在我们看其指数:以第四行为例:数字是1 2 4 8 4 2 1
它的次幂分别是 0 1 2 3 2 1 0
我们将0 1 2 3 2 1 0当成是y的值,将3所在的x设为0,就可以得到如下的数据:-3 -2 -1 0 1 2 3;假设令0 1 2 3 2 1 0的图像为为g(x),就可以得到它关系x轴对称的图像为-g(x),将-g(x)的最低点向上移就可得到:新的函数图像-g(x)+n;在发现新图像刚好也就是我们得到的x:-3 -2 -1 0 1 2 3的绝对值的图像,就可以得到-g(x)+n=|x|,我们就可以得到g(x)=n-|x|
import java.util.*;
class demo16{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.print("请输入数字");
int n=s.nextInt();
for(int i=1;i<=n;i++){
for(int k=1;k<=n-i;k++){
System.out.print(" ");
}
for(int j=-(i-1);j<=i-1;j++){
System.out.printf("%4d",(int)Math.pow(2,i-1-Math.abs(j)));
}
System.out.println();
}
}
}