* 期末考试 编程题#4:计算整数平方和(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)

编程题#4:计算整数平方和

来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

总时间限制: 1000ms 内存限制: 1024kB

描述
下列程序每次读入一个整数N,若N为0则退出,否则输出N和N的平方。

#include <iostream>
using namespace std;
// 在此处补充你的代码
int main(int argc, char* argv[]) {
        CType obj;
        int n;
        cin>>n;
        while ( n ) {
                obj.setvalue(n);
                cout<<obj++<<" "<<obj<<endl;
                cin>>n;
        }
        return 0;
}

输入
K个整数。除最后一个数据外,其他数据均不为0。

输出
K-1行。第I行输出第I个输入数和它的平方。

样例输入

1 5 8 9 0

样例输出

1 1
5 25
8 64
9 81

程序解答:

#include <iostream>
using namespace std;

// 在此处补充你的代码
class CType{
    int num;
public:
    void setvalue(int n){
        num = n;
    }
    friend ostream& operator << (ostream& os, CType& a){  //此处必须为友元函数
        os << a.num;
        return os;
    }
    CType operator++(){
        //static CType tmp = CType();  //必须使用static变量,否则返回时内存就被释放了
        //static CType tmp = *this;
        static CType tmp;
        tmp.num = num;
        num *= num;
        return tmp;
    }
};

int main(int argc, char* argv[]) {
    CType obj;
    int n;
    cin >> n;
    while (n) {
        obj.setvalue(n);
        cout << obj++ << " " << obj << endl;
        cin >> n;
    }

    return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值