寝癖頭の解法

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

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;
    if(n>=0 && n<10){
        cout<<1<<endl;
    }else if(n>=10 && n<100){
        cout<<2<<endl;
    }else if(n>=100 && n<1000){
        cout<<3<<endl;
    }
    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,a,b;
    cin>>n>>a>>b;
    int c=a+b;
    int d=a-b;
    int e=-a+b;
    int f=-a-b;
    if(n+c==0 || n+d==0
    || n+e==0 || n+f==0){
        cout<<"YES"<<endl;
    }else{
        cout<<"NO"<<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 c=0;
    int n;
    cin>>n;
    vector<int> a(n),b(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    for(int i=0;i<n;i++){
        cin>>b[i];
    }
    for(int i=0;i<n;i++){
        if(a[i]==b[i]){
            ++c;
        }
    }
    cout<<c<<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,s=0;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2==1){
            for(int j=0;j<i;j++){
                s+=a[j];
            }
            cout<<s<<endl;
            return 0;
        }
    }
}

・STEP: 5 終了判定 2

/*
C++による「条件分岐メニュー」問題集(積の最小化)
STEP: 5 終了判定 2
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 m=1; ;m++){
        n*=2;
        if(n>=k){
            cout<<m<<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,t;
    cin>>n>>k>>t;
    if((k*t)%n==0){
        cout<<"YES"<<endl;
    }else{
        cout<<"NO"<<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,t;
    cin>>n>>k>>t;
    if(n*k<=t){
        cout<<"YES"<<endl;
    }else{
        cout<<"NO"<<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;
using ll=long long;
int main(void){
    ll h,w;
    cin>>h>>w;
    if(h<2 || w<2){
        cout<<"NO"<<endl;
    }else if((h%2==0) && (w%2==0)){
        cout<<"YES"<<endl;
    }else{
        cout<<"NO"<<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 a,b;
    cin>>a>>b;
    if(a>=0 && b>=0){
        cout<<a*a<<endl;
    }else if(a<0 && b>=0){
        cout<<a*b<<endl;
    }else if(a<0 && b<0){
        cout<<b*b<<endl;
    }
    return 0;
}

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