手机关机大满足组大幸福!
题目是这个样子的
英文看的我难受死了,看中文反而成了享受。。。。。
这第一个题叫做 Sum of numbers from 0 to N
// 叫我代码吐槽小王子(人生新目标get
// 喜欢写这个 除了数学之外
// 程序员沉迷的 打怪升级啊哈哈哈哈可以整理出去了
// 除了数学之外
// 【键盘贴纸声音会不会小一点】
// 【洗衣服】
#include <string>
#include <iostream>
using namespace std;
class SequenceSum{// 类里面私有是count (嗯 所以后面初始化了呀
int count;
public:
SequenceSum (int); // 构造函数
string showSequence();// 用于展示
};
// 类的公有的成员函数【C++的成员什么的 ,除了这个你还会学什么阿尔啊啊】
string SequenceSum::showSequence(){
// 它是string类型的,这就有点emmm
std::string seq = "";// (搜了一下) 用标准模板库中的std::string来取代C风格数组
int tally =0;
if(count > 0)
{
// 【注意03 这里因为加号的问题,i和count之间用的比较巧妙。】
for(int i = 0; i <= count; i++)
{
seq += to_string(i); // 【好像是 转换成字符类型】
// seq=seq+i
if(i <count)
seq += "+";// seq=seq+ "+"
tally += i;// tally= tally+i
}
}
// 那我们来跑一下,就是 i=0,count=1
// seq= 0,满足i<count,这个大式子再加 ,就是0+
// tally相当于是sum在存储。
/// 循环完i=1,seq=0+1 ,最后一个了所以(后面)不再加“+”,可是还是要存到sum即tally里面的,ok啦
else if (count == 0)
return "0=0";
// 【注意02】 if语句 判断条件是 等于等于 别忘了 老是错(老咸鱼风格不加标点就爱空格真有魅力
else// 最后小于零的时候
return to_string(count) + "<0";
//【实践】 如果小于零用不到seq呀,直接[给的数据] 不满足- 小于零,就好了。
//【注意01 是else if 不能直接用if,最后其他情况直接else就好了】
//【注意01 而且最后这个else 后面不能跟着东西呀】
//seq在不断变化的过程中变长变长,最后变成了一个完整的式子,加最后结果
return seq + " = " + to_string(tally);
}
// 这个可能是构造函数噢噢噢噢 如果有一个数值(后面是转化成了字符以便输出的 oooo!!
SequenceSum::SequenceSum (int c) {
count = c;
}
【学到的tostring …
【/**/】
结果跑过去,负数和零可以满足,基础数据和其他数据过不了,这就有点小尴尬了
最后是下面这个版本过了的(核心代码)
* * 可以把构造函数写成(最后面) 类名:类名(int c):count(c) {}
string myString = "";
if (count < 0) { myString = to_string(count) + "<0"; return myString; }
else if (count == 0) {myString = "0=0"; return myString; }
for (int i = 0; i < count; ++i) {
myString += to_string(i) + "+";
}
myString += to_string(count ) + " = ";
// 这其实是一样的思想但是会简洁一点,,,,,只用到最后一次的话没必要每一次都比较一下子
myString += count & 1 ? to_string ((count+1) * (count/2) + (1+(count-1)/2)) : to_string((count+1) * (count/2));
// 检验 0+1+2;其实是然后3*1,0+1+2+3,就是6,就是4*1.5,10就是5*2,
//(好像)并不知道为啥上面那个不对,下面那个对
/// 这有点过了。,用个sum不行吗
return myString;
(简洁过头了!)
好的我现在codewars又登不上去了。。。明天把C++里面那些类和 数据结构第二题也写一下吧,代码很重要qwqqqq