ホグワーツ魔法魔術学校でのPATグレードA 1058 A + B(20ポイント)| C ++実装

1.タイトルの説明

元のタイトルリンク
ここに画像の説明を挿入

入力仕様:

各入力ファイルには、1つのスペースで区切られた、標準形式のAおよびBの行を占める1つのテストケースが含まれています。

出力仕様:

テストケースごとに、AとBの合計を入力と同じ形式で1行に出力する必要があります。

入力例:

3.2.1 10.16.27

出力例:

14.1.28

2、問題解決のアイデア

単純な加算シミュレーション問題。Knutの場合、2つを直接追加してから29を法としてモジュレーションします。2つの合計が29より大きい場合は、キャリー変数も1に変更する必要があります。残りの桁は同じです。

3、ACコード

#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int G[2], S[2], K[2];
void Add()
{
    
    
    int g, s, k;
    int carry = 0;
    k = (K[0]+K[1])%29;
    if(K[0] + K[1] >= 29)   carry = 1;
    s = (carry + S[0] + S[1])%17;
    carry = carry + S[0] + S[1] >= 17 ? 1 : 0;
    g = carry + G[0] + G[1];
    printf("%d.%d.%d", g, s, k);
    return;
}
int main()
{
    
    
    scanf("%d.%d.%d", &G[0], &S[0], &K[0]);
    scanf("%d.%d.%d", &G[1], &S[1], &K[1]);
    Add();
    return 0;
}

おすすめ

転載: blog.csdn.net/weixin_42393947/article/details/108636058