iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
自我挑戰組

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

[Day 21] UVA10035 & UVA10082

  • 分享至 

  • xImage
  •  

UVA10035

點我進UVA10035

題意

給兩個整數後,兩數相加後進位的次數

解題思路

先將數字n,m分別拆成個位數放進陣列中,
再進行兩數的陣列個別相加,當該陣列相加後大於9會開始記數+1,並且下一位數陣列也會跟著+1。

#include <iostream>

using namespace std;

int main(){
	int n,m,count=0;	
	while(cin>>n>>m && (n!=0||m!=0)){
		int nn[10]={0},mm[10]={0},i=0,l=0;
		while(n!=0){
			nn[i]=n%10;
			n/=10;
			i++;
		}
		while(m!=0){
			mm[l]=m%10;
			m/=10;
			l++;
		}
		for(int k=0;k<max(i,l);k++){
			if((nn[k]+mm[k])>9){
				count++;
				nn[k+1]++;
			}
		}
		if(count==0){
			cout<<"No carry operation."<<endl;
		}else if(count==1){
			cout<<"1 carry operation."<<endl;
		}else {
			cout<<count<<" carry operations."<<endl;
		}
		count=0;
		
		
	}
} 

UVA10082

點我進UVA10082

解題思路

gets():讀取字符並存儲,直到換行或文件結尾,可接受字串、空格並輸出。
strlen:計算字元陣列裡的字串長度

參考連結-C/C++ strlen 用法與範例:https://shengyu7697.github.io/cpp-strlen/
參考連結-C++ gets()用法:https://vimsky.com/zh-tw/examples/usage/cpp-programming_library-function_cstdio_gets.html

#include<iostream>
#include<cstring>
using namespace std;
int main(void){
char t[] = {"`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./"};//先建立出一個鍵盤表
char c[100] = {0};
while(gets(c)){
 for(int i = 0;i < strlen(c);i++){
  for(int j = 0;j < strlen(t);j++){
   if(c[i] == t[j]){//如果有比對相符就要輸出鍵盤左側移一格的字符才會是正確的
    cout<<t[j - 1];
    break;
   }else if(c[i] == ' '){
    cout<<c[i];
    break;
   }
   
   }
  }
  cout<<endl;    
 }
 return 0;
}

上一篇
[Day 20] UVA10071 & UVA12019 & UVA11827
下一篇
[Day 22] UVA10101 &UVA10424
系列文
30天從0開始的NCPC之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言