PTA练习笔记

基础编程练习题

题号:

 

7-16

7-1  题意理解

7-2    补零

    printf("%d%02d", EndTime/60, EndTime%60);

7-13      OJ 中输出格式的空格与回车问题。 

7-15: 1.  阶乘一般会超出常整型。改用double

            2.  while 里阶乘,累加的循环中间变量每次都要初始化。  编程习惯

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main()
{
    float threshold;
    float GeneralTerm = 1;
    float Sum = GeneralTerm;
    long long Denominator = 1, Numerator = 1;
    cin >> threshold;
    int n = 1;
    while(GeneralTerm >= threshold){
            Numerator = 1;  // 循环变量每次都要初始化,编程习惯
            Denominator = 1;
        for(int i = 1; i <= n; i++){
            Numerator *= i;
            Denominator *= (2*i+1);
        }
        //cout << Numerator << " " << Denominator<< endl;
        GeneralTerm = 1.0 * Numerator / Denominator;
        Sum += GeneralTerm;
        //cout << GeneralTerm << endl;
        n++;    // 需要注意,变量累加,编程习惯
    }
    printf("%.6f\n", Sum * 2.0);

    return 0;
}

7-16 不会做  其实是暴力循环,三次遍历全部四个数

7-17 要重复写 基本的循环思考能力。

7-18 1. 函数系数,设为常量

         2. 考察的是二分法,思路明确。

         3. 思考问题全面,区间端点,中点。

 

7-25 对于数组,数字位数不确定,可以从前向后存入数组, i-- 输出。 模拟栈。

7-36    %+.f 的妙用, 可以有效判复数虚部的  正负号。

一、

 编写C++风格的程序,解决百钱问题,将一元人民币兑换成1、2、5分的硬币,有多少种换法? 

//法一:直接法
#include <iostream>
using namespace std;
int main()
{
    int i,j,sum=0;
    for(i=0; i<=20; i++)    
        for(j=0; j<=50; j++)
            if(100-5*i-2*j>=0)    //自己做的时候没有想到这样比较
                {
                     sum++;
                     //cout<<100-5*i-2*j<<"\t"<<j<<"\t"<<i<<endl;

                    }
                cout<<"sum is\t"<<sum<<endl;
    return 0;
}

二、

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

5 6
#include <iostream>

using namespace std;

int main()
{
    int centi; //容易受到题目所给公式的影响,那个公式仅仅表示所求的整数值
    int foot , inch;
    double temp;
    cin >> centi;
    temp = centi / 100.0;
    foot = temp/0.3048;
    //inch = inch  * 12 / 145;
    temp = temp/0.3048-foot;
    inch = temp*12;
    cout <<foot<< " "<<inch<<endl;
    return 0;
}

 三、

有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值