[关闭]
@rg070836rg 2019-01-23T15:32:50.000000Z 字数 1915 阅读 802

第15课(认识函数)

tmooc

  1. 1697 换算器
  2. #include<iostream>
  3. #include<iomanip>
  4. using namespace std;
  5. /*
  6. 返回值类型 函数名(参数类型 参数名字)
  7. {
  8. 函数体内容(包含返回语句)
  9. }
  10. */
  11. float get(float x)
  12. {
  13. float bang = x * 2.2046226;
  14. return bang;
  15. }
  16. int main(){
  17. int k;
  18. cin>>k;
  19. cout<<fixed<<setprecision(4)<<get(k)<<endl;//保留小数位数 调用get函数
  20. return 0;
  21. }
  1. 1698 统计质数
  2. #include<iostream>
  3. using namespace std;
  4. bool isSushu(int x)
  5. {
  6. //数字1不是素数,特殊判断,直接返回false
  7. if(x==1) return false;
  8. //其他数 检查从2~x-1 能否有被整除的
  9. for(int i=2;i<x;i++)
  10. {
  11. if(x%i==0) //如果存在被整除的,则不是素数,返回false
  12. return false;
  13. }
  14. return true;//否则 到这里 所有的情况都检查通过 返回true
  15. }
  16. int main(){
  17. int n,x;
  18. cin>>n;
  19. for(int i=0;i<n;i++) //按题目要求 读入n个数据
  20. {
  21. cin>>x;
  22. if(isSushu(x)) //对每一个数据进行判断,如果是素数 则输出
  23. cout<<x<<" ";
  24. }
  25. return 0;
  26. }
  1. 1699 插队
  2. #include<iostream>
  3. using namespace std;
  4. int paidui(){
  5. int n,x;//n为人数,x为小童身高
  6. cin>>n>>x;
  7. int t[n];//用来保存 每次读进来的身高
  8. for(int i=0;i<n;i++) //录入数据
  9. {
  10. cin>>t[i];
  11. }
  12. for(int i=0;i<n;i++) //存好数据后,遍历数据,查找结果
  13. {
  14. if(x<=t[0]) //如果小童比第一个人还要矮,直接返回位置1
  15. return 1;
  16. if(x>t[i] && x<=t[i+1])//按照题目意思,如果 小童的身高 比前一个人大,
  17. //并且小于等于后一个人,则找到所在位置,
  18. {
  19. return i+1+1;//返回结果,注意 数组从0开始,先加1,由于找到的位置在i+1,所以结果是i+1+1
  20. }
  21. }
  22. return n+1;//如果整个队伍里面没有符合要求的位置,则返回最后一个位置
  23. }
  24. int main(){
  25. cout<<paidui()<<endl;
  26. return 0;
  27. }
  1. 1700 回文质数
  2. #include<iostream>
  3. using namespace std;
  4. bool isZhishu(int x)
  5. {
  6. //数字1不是素数,特殊判断,直接返回false
  7. if(x==1) return false;
  8. //其他数 检查从2~x-1 能否有被整除的
  9. for(int i=2;i<x;i++)
  10. {
  11. if(x%i==0) //如果存在被整除的,则不是素数,返回false
  12. return false;
  13. }
  14. return true;//否则 到这里 所有的情况都检查通过 返回true
  15. }
  16. bool isHuiwen(int x)
  17. {
  18. int t = x; //用t保存原来需要判断的数字x
  19. int sum=0;//用来保存拼接的数字
  20. while(t!=0)//处理所有的位数
  21. {
  22. sum=sum*10+t%10; //sum 每次先扩大10倍,再加上每次读入的个位数
  23. t/=10;
  24. }
  25. /*
  26. if(sum==x) //如果新拼成的数字sum与给定的x相等,则返回true
  27. return true;
  28. else //否则返回false
  29. return false;
  30. */
  31. return sum==x; //这一句话 相当于上面的4行
  32. }
  33. int main(){
  34. int a,b;//题目中的区间范围
  35. cin>>a>>b;//录入数据
  36. for(int i=a;i<=b;i++){//枚举i 从a~b
  37. if(isZhishu(i) && isHuiwen(i)) //如果既是质数 又是回文数,则满足题目要求的回文质数
  38. cout<<i<<endl; //每行输出一个
  39. }
  40. return 0;
  41. }
  1. 1712 数根
  2. #include<iostream>
  3. using namespace std;
  4. //获得x的每一位的和 例如输入x=345 返回12
  5. int getSum(int x)
  6. {
  7. //思路和前面的一样,取出每一位,累加即可
  8. int sum=0;
  9. while(x!=0)
  10. {
  11. sum+=x%10;
  12. x/=10;
  13. }
  14. return sum;
  15. }
  16. int main(){
  17. long long x;//录入数据
  18. cin>>x;
  19. //题目说 如果不是一位数 就一直算下去,所以我们使用while循环,直到x为一位数
  20. while(x>9)
  21. x = getSum(x);
  22. cout<<x;
  23. return 0;
  24. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注