給兩個整數後,兩數相加後進位的次數
先將數字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;
}
}
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;
}