寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: C++による「二重ループメニュー」問題集(基本編)

paizaラーニングのレベルアップ問題集「二重ループメニュー」からの出典です。
paiza.jp
C++による「二重ループ:基本編」問題集と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 指定された数字までの出力

/*
C++による「二重ループ:基本編」問題集
STEP: 1 指定された数字までの出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cout<<i;
        if(i==n){
            cout<<endl;
        }else{
            cout<<" ";
        }
    }
    return 0;
}

・STEP: 2 指定された数字までの出力

/*
C++による「二重ループ:基本編」問題集
STEP: 2 指定された数字までの出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cout<<i<<endl;
    }
    return 0;
}

・STEP: 3 指定された行数の数字の出力

/*
C++による「二重ループ:基本編」問題集
STEP: 3 指定された行数の数字の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        for(int j=1;j<=5;j++){
            cout<<j;
            if(j!=5){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 4 指定された範囲・行数の数字の出力

/*
C++による「二重ループ:基本編」問題集
STEP: 4 指定された範囲・行数の数字の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k;
    cin>>n>>k;
    for(int i=0;i<k;i++){
        for(int j=1;j<=n;j++){
            cout<<j;
            if(j!=n){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 5 二次元配列の出力

/*
C++による「二重ループ:基本編」問題集
STEP: 5 二次元配列の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k;
    cin>>n>>k;
    int a[n][k];
    for(int i=0;i<n;i++){
        for(int j=0;j<k;j++){
            cin>>a[i][j];
            cout<<a[i][j];
            if(j!=k-1){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・STEP: 6 二次元配列での要素の検索

/*
C++による「二重ループ:基本編」問題集
STEP: 6 二次元配列での要素の検索
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k;
    cin>>n>>k;
    int a[n][k];
    for(int i=0;i<n;i++){
        for(int j=0;j<k;j++){
            cin>>a[i][j];
            if(a[i][j]==1){
                cout<<i+1<<" ";
                cout<<j+1<<endl;
                return 0;
            }
        }
    }
}

・STEP: 7 二次元配列の最大の要素

/*
C++による「二重ループ:基本編」問題集
STEP: 7 二次元配列の最大の要素
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k;
    cin>>n>>k;
    int ans=0;
    int a[n][k];
    for(int i=0;i<n;i++){
        for(int j=0;j<k;j++){
            cin>>a[i][j];
            ans=max(ans,a[i][j]);
        }
    }
    cout<<ans<<endl;
    return 0;
}

・STEP: 8 二次元配列の行ごとの和

/*
C++による「二重ループ:基本編」問題集
STEP: 8 二次元配列の行ごとの和
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k;
    cin>>n>>k;
    int a[n][k];
    int ans[n];
    for(int i=0;i<n;i++){
        ans[i]=0;
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<k;j++){
            cin>>a[i][j];
            ans[i]+=a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        cout<<ans[i]<<endl;
    }
    return 0;
}

・STEP: 9 さまざまな長さの配列の和

/*
C++による「二重ループ:基本編」問題集
STEP: 9 さまざまな長さの配列の和
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    int k[n],ans[n];
    for(int i=0;i<n;i++){
        ans[i]=0;
    }
    for(int i=0;i<n;i++){
        cin>>k[i];
        for(int j=0;j<k[i];j++){
            int num;
            cin>>num;
            ans[i]+=num;
        }
    }
    for(int i=0;i<n;i++){
        cout<<ans[i]<<endl;
    }
    return 0;
}

・STEP: 10 階段の出力

/*
C++による「二重ループ:基本編」問題集
STEP: 10 階段の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            cout<<j;
            if(j!=i){
                cout<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

・FINAL問題 二重ループ:基本編 積の最大

/*
C++による「二重ループ:基本編」問題集
FINAL問題 二重ループ:基本編 積の最大
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
    int n,k;
    cin>>n>>k;
    vector<int> a(n),b(k);
    int ans=-10001;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    for(int i=0;i<k;i++){
        cin>>b[i];
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<k;j++){
            ans=max(ans,a[i]*b[j]);
        }
    }
    cout<<ans<<endl;
    return 0;
}

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。