iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

30天從0開始的NCPC之旅系列 第 25

[Day 25] UVAUVA12626 &UVA11332

  • 分享至 

  • xImage
  •  

UVA12626

點我進UVA12626

題意

字符串能夠成幾個單字"MARGARITA"

解題思路

暴力解即可,"MARGARITA"中含有
一個“M”、三個“A”、兩個“R”、一個“G”、一個“I”和一個“T”的最低食材數
將這些單字統計後並計算最少可以組成的pizza數量。

#include<iostream>
#include<string>
#include<algorithm>

using namespace std;
 
int main(){
 int n;
 string str;
 cin>>n;
 while(cin>>str){
  
  int m=0,a=0,r=0,g=0,i=0,t=0;
  if(n==0) break;
  for(int j=0;j<str.length();j++){
   if(str[j]=='M') m++;
   else if(str[j]=='A') a++;
   else if(str[j]=='R') r++;
   else if(str[j]=='G') g++;
   else if(str[j]=='I') i++;
   else if(str[j]=='T') t++;
  }
  //因為要以最少食材來決定最多能做出幾個pizza,所以A/3和R/2 
  cout << min(m,min(a/3,min(r/2,min(g,min(i,t)))))<<endl;
  n--;
 }
}

UVA11332

點我進UVA11332

題意

個位數字持續性的互相相加,計算此數到最後得到僅有一位數字的值。

解題思路

將數字不斷除十後,將個位數相加。
若相加後仍然大於十,重複執行該迴圈,直到小於十停止迴圈並輸出。

#include <iostream>
using namespace std;
int f(int a)
{
    int sum=0;
    while(a!=0)
    {
        sum+=a%10;
        a/=10;
    }
    return sum;
}
int main()
{
    int x;
    while(cin>>x)
    {
        if(x==0){break;}
        while(f(x)>=10) { x=f(x); }
        cout<<f(x)<<endl;
    }
    
    return 0;
}


上一篇
[Day 24] UVA10162
下一篇
[Day26]UVA10324 & UVA12640
系列文
30天從0開始的NCPC之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言