測資裡有出現幸運數字第1或2和第3個相同的狀況
所以除了不加不減外也不能乘2
long n1,n2,n3,arr[5],mon[5],sum=0,s=0;
cin>>n1>>n2>>n3>>arr[0]>>arr[1]>>arr[2]>>arr[3]>>arr[4]>>mon[0]>>mon[1]>>mon[2]>>mon[3]>>mon[4];
for(int i=0;i<5;i++)
{
if(arr[i]==n1||arr[i]==n2)
sum+=mon[i];
if(arr[i]==n3)//這裡不能用else if 因為會有第1或2和第3個相同的狀況
sum=sum-mon[i],s++;
}
if(s==0)
sum=sum*2;
if(sum<0)
sum=0;
cout<<sum;
測資裡有出現幸運數字第1或2和第3個相同的狀況
所以除了不加不減外也不能乘2
for(int i=0;i<5;i++)
{
if(arr[i]==n1||arr[i]==n2)
sum+=mon[i];
if(arr[i]==n3)//這裡不能用else if 因為會有第1或2和第3個相同的狀況
sum=sum-mon[i],s++;
}
感謝解題報告!
但這裡提醒一下,你的程式碼是對的,但文字描述有誤。
因為幸運數字a、b和c重複的情況有兩種:
第一種是a或b「其一」等於c,但a不等於b,
若此號碼出現在號碼區,
則獎金會先加一次(因為a、b其一出現在號碼區),再減一次(因為c出現在號碼區),
因此才會像是不加不減。
第二種是a或b「皆」等於c,
若此號碼出現在號碼區,
則獎金會先加兩次(因為a、b皆出現在號碼區),再減一次(因為c出現在號碼區),
總共會加一次獎金。
你的程式碼兩種情況都能適用,因此可以AC。
但文字敘述中的「不加不減」只適用於第一種,可能會讓人誤會😅
應該說「考量a、b可能和c相同,a、b的判斷和c的判斷各自進行」會比較好~