美文网首页
华为开发者英雄大会-work-1

华为开发者英雄大会-work-1

作者: 克罗地亚催眠曲 | 来源:发表于2019-01-11 19:38 被阅读16次

华为最近推出一项活动,名为开发者英雄大会,参与该活动需要在华为云服务DevCloud中创建项目,提交代码,并在论坛上回复帖子,然后等待算法评估及奖励发放。

为了训练一下编程技巧,空闲时间做了一下题目,首先题目描述如下

输入一个日期,格式为xxxx-xx-xx(年-月-日),计算其距离 2016-12-22 的天数。
//2016-12-22是DevCloud的生日哦~
 
示例1
Input:2018-12-22
Output:730
 
示例2
Input:2020-12-22
Output:1461

采用C++技术栈,代码如下

 #include <iostream>                                
 #include <vector>                                  
 #include <ctime>                                   
 #include <sstream>                                 
 #include <cstdlib>                                 
 #include <iterator>                                
 using namespace std;                               
                                                    
 int main() {                                       
     tm birth = {0};                                
     tm input = {0};                                
     birth.tm_year = 2016;                          
     birth.tm_mon = 12;                             
     birth.tm_mday = 22;                            
     string line;                                   
     while(getline(cin, line)) {                    
         if(line == "")                             
             break;                                 
         //cout << line << endl;                    
         istringstream iss(line);                   
         string token;                              
         vector<string> input_s;                    
         while(getline(iss, token, '-')) {          
             input_s.push_back(token);              
         }                                          
         if(input_s.size() != 3) {                  
             cout << "your input format is not correct\nexample 2018-12-22\n" << endl;
             continue;                              
         }                                          
         input.tm_year = stoi(input_s[0]);          
         input.tm_mon = stoi(input_s[1]);           
         input.tm_mday = stoi(input_s[2]);          
                                                    
         double diff = difftime(mktime(&input), mktime(&birth));
         cout << int(diff/60/60/24) << endl;  
    }
    return 0;
} 

使用g++编译代码

g++ work-1.cpp

运行a.out文件,输入为空时退出程序。
(本文完)

相关文章

网友评论

      本文标题:华为开发者英雄大会-work-1

      本文链接:https://www.haomeiwen.com/subject/sgkfdqtx.html