1 条题解

  • 0
    @ 2024-12-18 14:07:32

    C :

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int n,i,j,a,b;
    	while(1)
    	{
    		scanf("%d",&n);
    		if(n==0)
    		{
    			break;
    		}
    		int arr[n][n];
    		
    		for(i=0;i<n;i++)
    		{
    			for(j=0;j<n;j++)
    			{
    				arr[i][j]=pow(2,i+j);
    			}
    		}
    			
    		for(i=0;i<n;i++)
    		{
    			for(j=0;j<n-1;j++)
    			{
    				printf("%d ",arr[i][j]);
    			}
    			printf("%d",arr[i][j]);
    			printf("\n");
    		}
    		printf("\n");
    	}
    
    		
    			
    	
    	
    	return 0;
    }
    

    C++ :

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n;
        while(cin >> n,n)
        {
            for(int i = 0; i < n; i ++)
            {
                for(int j = 0; j < n; j ++)
                    cout << (1 << i) * (1 << j) << ' ';//两个乘数 后者控制基数 1 ~ 2^(n-1) ,前者控制倍数
                cout << endl;
            }
            cout << endl;
        }
        return 0;
    }
    

    Java :

    import java.util.Scanner;
    class Main{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            while(true){
                int N=sc.nextInt();
                int[][] arr=new int[N][N];
                for(int i=0;i<N;++i){
                    for(int j=0;j<N;++j){
                        arr[i][j]= (int)((int)Math.pow(2,i+j));
                        System.out.printf("%d ",arr[i][j]);
                    }
                         System.out.print("\n");
                }
                        if(N==0)return;
                  System.out.print("\n");
            }
         }
    }
    
    • 1

    信息

    ID
    679
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    提交数
    33
    已通过
    14
    上传者