iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0

UVA10222

點我進UVA10222

解題思路

只要把每個字母或符號以鍵盤上它左邊第二個鍵的符號來取代就行了。
空白和換行請直接輸出。
1.先建立對比用字串
2.輸入字串
3.先將大寫轉小寫
4.再逐一與比對用字串作轉換(空白直接輸出)
5.輸出

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string c=" `1234567890-=qwertyuiop[]asdfghjkl;'zxcvbnm,./";
    //建立比對用的字串,先按空白鍵,之後從鍵盤左邊按到右邊就對了。
    string s;//要輸入的字串
    while(getline(cin,s))//輸入
    {
        
        for(int i=0;i<s.length();i++)//開始一個一個比對
        {
            if(s[i]>='A'&&s[i]<='Z')
            {
                s[i]=s[i]+32; //先將大寫換成小寫
            }
            
            for(int t=0;t<c.length();t++)//逐一與比對用字串比對
            {
                if(s[i]==c[0])//空白鍵不用轉換
                {
                    cout<<" ";
                    break;
                }
                
                else if(s[i]==c[t])
                {
                    cout<<c[t-2];//輸出左邊兩個鍵盤的字
                    break;
                }
            }
        }
        cout<<endl;
    }
    return 0;
}

UVA10038

點我進UVA10038

解題思路

計算兩個相鄰的數的差的絕對值並且輸出出來

#include <iostream>
#include <set>

using namespace std;

int main(){
	int num;
	set <int> s;
	set <int> ::iterator it;
	
	while(cin>>num){
			int a,b;
			
			cin>>a;
			for(int i=0;i<num-1;i++){
				cin>>b;
				if(abs(a-b)<num&&abs(a-b)) s.insert(abs(a-b));
				a=b;
			}
			
			
			if(s.size()==num-1)cout<<"Jolly"<<endl;
			else cout<<"Not jolly"<<endl;
			
			s.clear();
			
		
	}


}

上一篇
[Day 08] UVA10170& UVA10812& UVA299
下一篇
[Day 10] UVA10093 & UVA11349 & UVA10062
系列文
30天從0開始的NCPC之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言