給定一段數字,將每一位數不停地相加直到只剩下個位數就是答案。
因為要不停地相加到,所以我們用遞迴寫。
#include <bits/stdc++.h>
using namespace std;
int f(int n){
if(n<10) return n;
return f(f(n/10)+n%10);
}
int main(){
int n;
while(cin>>n,n)
cout<<f(n)<<endl;
return 0;
}
給定兩字串,比較兩字串中出現相同字母且次數最少的那個。
讀入兩字串後,先統計第一個字串後跟第二個字串比較,後將出現最少的輸出出來。
#include <bits/stdc++.h>
using namespace std;
int main(){
string s1,s2;
while(getline(cin,s1)){
getline(cin,s2);
int idx[2][30]={0};
#define idx(x) idx[x][e-'a']
for(auto&e:s1)
++idx(0);
for(auto&e:s2)
idx(1) = min(idx(0),idx(1)+1);
for(int&e:idx[1])cout<<string(e,char('a'+(&e-idx[1])));cout<<endl;
}
return 0;
}