iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
自我挑戰組

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

[Day 30] UVA12468 & UVA10469 & 結尾

  • 分享至 

  • xImage
  •  

UVA12468

點我進UVA12468

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
//電視有 100 個頻道,號碼為 0 到 99。它們是循環的,也就是從 99 台再按一下 △ 就會回到第 0 台。
//輸入現在正在看的頻道和我要切過去的頻道,它便告訴我最少需要按幾次按鈕。
int main() {
 int a, b;
 while (cin >> a >> b) {
  if (a == -1 || b == -1) break; //-1 -1 結束輸入
  if (abs(a - b) == 99) cout << "1" << endl; //從 99 台再按一下 △ 就會回到第 0 台
  else cout << min(abs(a - b), min(abs(a - 99) + b + 1, abs(b - 99) + a + 1)) << endl;
 }   //有三種情況,ab間為最小距離、a離99近再加上b、b離99近再加上a(+1是因為0沒有算到)
}       //比如1和97的最小次數是98 99 0 1四次但實際算數99-97+1為三次少算0這個數字

UVA10469

點我進UVA10469

題意:

有人做出來的加法器沒有進位機制,也就是4+6會等於2
因為
0100
+0110
0010 缺少進位=>2

我們現在要模擬它這種加法器去做運算,input給兩個數字要運用這種加法器去算出結果(output)

解題思路:

用XOR來寫,因為1+1會輸出0

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int a,b ;
    while(cin>>a>>b){
        cout<<(a^b)<<endl ;
}
return 0;
}

結尾

30天挑戰終於完成了! 雖然寫完30天的UVA程式依舊還是不如那些大神.../images/emoticon/emoticon20.gif但對題目更加熟悉,看到題目不再這麼害怕,也因為每天規定自己挑戰1-3題,寫程式能力比以往更好了/images/emoticon/emoticon07.gif


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

尚未有邦友留言

立即登入留言