今天我在Codewars做的第一道题

手机关机大满足组大幸福!
题目是这个样子的

英文看的我难受死了,看中文反而成了享受。。。。。
这第一个题叫做 Sum of numbers from 0 to N

// 叫我代码吐槽小王子(人生新目标get 

// 喜欢写这个  除了数学之外
// 程序员沉迷的 打怪升级啊哈哈哈哈可以整理出去了
//    除了数学之外 
// 【键盘贴纸声音会不会小一点】 
 // 【洗衣服】 
#include 
#include 
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 "+";//  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

你可能感兴趣的:(今天我在Codewars做的第一道题)