#33923: C++求助路過大大,測試會過,但不知為何過不了正式......


kk20180820@gmail.com (Wayne Yang)

學校 : 國立鳳山高級中學
編號 : 172018
來源 : [49.159.254.231]
最後登入時間 :
2024-03-16 17:31:07
a286. 難道這就是命中注定 | From: [49.159.254.231] | 發表日期 : 2023-02-14 00:39

//未完成
#include<iostream>
#include<stdlib.h>
using namespace std;

int sumT(int sum)
{
    int sumA=10;
    while(sumA / 10 != 0){
        sumA = 0;
        while(sum/10 != 0)
        {
            sumA += sum%10;
            sum /= 10;
        }
        sumA += sum;
        sum = sumA;
    }

    return sum;


}


string num = "0123456789";

int main(void)
{
    string a;

    while(getline(cin,a))
    {
        string b;
        int n;
        int sumM = -1,sumN = 0,sumZ = 0;

        for(int j=0;j<a.length();j++)
        {
            for(int k=0;k<10;k++)
            {
                if(a[j] == num[k])
                {
                    sumZ += k;
                }
            }

        }

        sumZ = sumT(sumZ);
        cin>>n;

        for(int i=0;i<n;i++)
        {

            cin.ignore();
            getline(cin,b);

            int sum = 0;

            for(int j=0;j<b.length();j++)
            {
                for(int k=0;k<10;k++)
                {
                    if(b[j] == num[k])
                    {
                        sum += k;
                    }
                }
            }

            sum = sumT(sum);

            int t = abs(sum-sumZ);
            if(sumM > t || sumM == -1)
            {
                sumM = t;
                sumN = i+1;
            }

        }

        cout<<sumN<<'\n';
        cin.ignore();


    }


    return 0;
}

 
#33933: Re: C++求助路過大大,測試會過,但不知為何過不了正式......


krameri120 (科科)

學校 : 國立臺南高級工業職業學校
編號 : 102318
來源 : [36.237.212.239]
最後登入時間 :
2024-04-01 14:20:14
a286. 難道這就是命中注定 | From: [39.14.55.14] | 發表日期 : 2023-02-14 19:42

 


github:
程式
之前寫過UVa-11332 Summing Digits
類似題目,直接%9就好了,除非全數字都是0,不然不可能有加完結果是0的可能

 
#33937: Re: C++求助路過大大,測試會過,但不知為何過不了正式......


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
a286. 難道這就是命中注定 | From: [59.115.17.181] | 發表日期 : 2023-02-15 10:15

//未完成
#include
#include
using namespace std;

int sumT(int sum)
{
    int sumA=10;
    while(sumA / 10 != 0){
        sumA = 0;
        while(sum/10 != 0)
        {
            sumA += sum%10;
            sum /= 10;
        }
        sumA += sum;
        sum = sumA;
    }

    return sum;


}


string num = "0123456789";

int main(void)
{
    string a;

    while(getline(cin,a))
    {
        string b;
        int n;
        int sumM = -1,sumN = 0,sumZ = 0;

        for(int j=0;j        {
            for(int k=0;k<10;k++)
            {
                if(a[j] == num[k])
                {
                    sumZ += k;
                }
            }

        }

        sumZ = sumT(sumZ);
        cin>>n;

        for(int i=0;i        {

            cin.ignore();
            getline(cin,b);

            int sum = 0;

            for(int j=0;j            {
                for(int k=0;k<10;k++)
                {
                    if(b[j] == num[k])
                    {
                        sum += k;
                    }
                }
            }

            sum = sumT(sum);

            int t = abs(sum-sumZ);
            if(sumM > t || sumM == -1)
            {
                sumM = t;
                sumN = i+1;
            }

        }

        cout<        cin.ignore();


    }


    return 0;
}


你沒發現從第二個追求者開始特別數就都錯了嗎?

你的cin.ignore()會把生日的第一個數字吃掉

 
ZeroJudge Forum