小试题

xiaoxiao2021-02-28  108

输入一个数n,在输出从1到这个n的过程中,被3整除时输出“fizz”,被5整除时输出“buzz”,被3和5同时整除时输出“fizz buzz”。(涉及整形数转化为字符串,应用到字符串流)

###代码为:

#include<iostream> using namespace std; #include<sstream> class dividedby35 { public: dividedby35(int nn) :n(nn) { p = new string[n + 1]; } dividedby35() { p = NULL; } string *replace_(); void print(); string itos(int); private: int n; string *p; string tmp; }; string* dividedby35::replace_() { for (int i = 0; i<n; ++i) { if ((i + 1) % 3 == 0 && (i + 1) % 5 == 0) p[i] = "fizz buzz"; else if ((i + 1) % 3 == 0) p[i] = "fizz"; else if ((i + 1) % 5 == 0) p[i] = "buzz"; else p[i] = itos(i + 1); } return p; } void dividedby35::print() { int i = 0; for (int j = 0; j * 5 < n; ++j) { for (i = 0; i < 5; ++i) if (i + j * 5 >= n) break; else cout << p[i + j * 5] << '\t'; cout << endl; } } string dividedby35::itos(int i) { stringstream s; s << i; return s.str(); } int main() { dividedby35 A(21); A.replace_(); A.print(); }
转载请注明原文地址: https://www.6miu.com/read-54479.html

最新回复(0)