码蹄集——人民币大写数字、全部整除、隐晦余8
MT1132 人民币大写数字
输入一个金额,输出对应的人民币大写数字(零壹贰叁肆伍陆柒捌玖拾)。不考虑负数等不合理的输入。
格式
输入格式:输入为整型(<100)
输出格式:输出字符
样例 1
输入:35
输出:叁拾伍元整
此题主要考查语言选择结构,这里有三个不同输出样式,依次为单个数字、整十数和非整十的两位数,只要分开讨论即可
代码1:
#include<bits/stdc++.h>using namespace std;int main()
{map<int,string>mp;mp[0]="零",mp[1]="壹",mp[2]="贰",mp[3]="叁",mp[4]="肆",mp[5]="伍",mp[6]="陆",mp[7]="柒",mp[8]="捌",mp[9]="玖",mp[10]="拾"; int x;cin>>x;int tmp=x;if(x==0){ cout<<mp[x]<<"元整";return 0;}while(x){if(x<=10){cout<<mp[x];break;}tmp/=10;cout<<mp[tmp]<<"拾";x%=10;}cout<<"元整";return 0;
}
代码2:优化版
#include<bits/stdc++.h>using namespace std;int main()
{map<int,string>mp;mp[0]="零",mp[1]="壹",mp[2]="贰",mp[3]="叁",mp[4]="肆",mp[5]="伍",mp[6]="陆",mp[7]="柒",mp[8]="捌",mp[9]="玖",mp[10]="拾"; int x;cin>>x;if(x<=10)cout<<mp[x]<<"元整";else if(x%10==0)cout<<mp[x/10]<<"拾元整";elsecout<<mp[x/10]<<"拾"<<mp[x%10]<<"元整";return 0;
}
MT1145 全部整除
输入正整数N,找到一个最小的整数K,可以被1到N的每个数整除。
格式
输入格式:输入整型
输出格式:输出整型
样例 1
输入:6
输出:60
直接遍历,重点是 if(i>n)这个判断,即当该m可以被所有1~n数整除时跳出循环
#include<bits/stdc++.h>using namespace std;int main()
{int n,m,i;cin>>n;for(m=n;;m++){for(i=1;i<=n;i++)if(m%i!=0)break;if(i>n)//上面的for循环遍历完break;}cout<<m;return 0;}
MT1148 隐晦余8
存在一个数x(大于10),除以3余2,除以5余3,除以7余1,求这个数最小值。
格式
输入格式:无
输出格式:输出整型
样例 1
输入:无
输出:113
直接遍历:
#include<bits/stdc++.h>using namespace std;int main()
{for(int i=10;i<=1000;i++)if(i%3==2&&i%5==3&&i%7==1){cout<<i;break;}return 0;}
小技巧:
#include<bits/stdc++.h>using namespace std;int main()
{int i=15;while(1){if(i%3==2&&i%5==3&&i%7==1) break;i+=7;}cout<<i;return 0;}