C++ 给定当前的时间,用英文的读法将它读出来 问题解决代码

这写得非常简单...没有任何高级用法,估计开始学习c++的同学都能看懂了。

 

#include<iostream>

using namespace std;

int main()

{

    int x1,x2;

    cin>>x1>>x2;

    switch(x1)//先看小时位,用switch语句,

    {

    case 0:cout<<"zero ";break;

    case 1:cout<<"one ";break;

    case 2:cout<<"two ";break;

    case 3:cout<<"three ";break;

    case 4:cout<<"four ";break;

    case 5:cout<<"five ";break;

    case 6:cout<<"six ";break;

    case 7:cout<<"seven ";break;

    case 8:cout<<"eight ";break;

    case 9:cout<<"nine ";break;

    case 10:cout<<"ten ";break;

    case 11:cout<<"eleven ";break;

    case 12:cout<<"twelve ";break;

    case 13:cout<<"thirteen ";break;

    case 14:cout<<"fourteen ";break;

    case 15:cout<<"fifteen ";break;

    case 16:cout<<"sixteeen ";break;

    case 17:cout<<"seventeen ";break;

    case 18:cout<<"eighteen ";break;

    case 19:cout<<"nineteen ";break;

    case 20:cout<<"twenty ";break;

    case 21:cout<<"twenty one ";break;

    case 22:cout<<"twenty two ";break;

    case 23:cout<<"twenty three ";break;

    case 24:cout<<"twenty four ";break;

    }

    if(x2==0)

    {cout<<"o'clock";}

    else

    {

    if(x2<=20)

    {

    switch(x2)//再看分钟数,也是switch,而且由于20分以上读法不一致所以此处用if语句判断分别解决。

    {

    case 0:cout<<"zero ";break;

    case 1:cout<<"one ";break;

    case 2:cout<<"two ";break;

    case 3:cout<<"three ";break;

    case 4:cout<<"four ";break;

    case 5:cout<<"five ";break;

    case 6:cout<<"six ";break;

    case 7:cout<<"seven ";break;

    case 8:cout<<"eight ";break;

    case 9:cout<<"nine ";break;

    case 10:cout<<"ten ";break;

    case 11:cout<<"eleven ";break;

    case 12:cout<<"twelve ";break;

    case 13:cout<<"thirteen ";break;

    case 14:cout<<"fourteen ";break;

    case 15:cout<<"fifteen ";break;

    case 16:cout<<"sixteeen ";break;

    case 17:cout<<"seventeen ";break;

    case 18:cout<<"eighteen ";break;

    case 19:cout<<"nineteen ";break;

    case 20:cout<<"twenty ";break;

    }  

    }

    else

    {

        switch(x2/10)

        {

            case 2:cout<<"twenty ";break;

            case 3:cout<<"thirty ";break;

            case 4:cout<<"fourty ";break;

            case 5:cout<<"fifty ";break;

        }

        switch(x2%10)

        {

    case 0:cout<<"zero ";break;

    case 1:cout<<"one ";break;

    case 2:cout<<"two ";break;

    case 3:cout<<"three ";break;

    case 4:cout<<"four ";break;

    case 5:cout<<"five ";break;

    case 6:cout<<"six ";break;

    case 7:cout<<"seven ";break;

    case 8:cout<<"eight ";break;

    case 9:cout<<"nine ";break;

    case 10:cout<<"ten ";break;

        }

    }

    }

    return 0;

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,约瑟夫问题是一个经典的数学问题,可以通过使用链表来解决。下面是一个使用C++代码实现约瑟夫问题的设计思路: 1. 定义一个单向链表的结构体,包含两个成员变量:一个数据域和一个指向下一个节点的指针域。 ```c++ struct Node { int data; Node* next; }; ``` 2. 编写一个函数,用于创建一个含有n个节点的链表。在创建链表时,需要考虑每个节点的数据和下一个节点的指针。 ```c++ Node* createList(int n) { Node* head = new Node(); Node* p = head; for (int i = 1; i <= n; ++i) { Node* node = new Node(); node->data = i; p->next = node; p = p->next; } p->next = head->next; return head->next; } ``` 3. 编写一个函数,用于删除链表中的第m个节点。在删除节点时,需要修改前一个节点的指针,使其指向下一个节点。 ```c++ Node* removeNode(Node* head, int m) { Node* p = head; while (p->next != p) { for (int i = 1; i < m; ++i) { p = p->next; } Node* temp = p->next; p->next = temp->next; delete temp; p = p->next; } return p; } ``` 4. 在主函数中,调用上述函数,完成约瑟夫问题的求解。具体来说,我们可以先创建一个含有n个节点的链表,然后在循环中不断删除第m个节点,直到链表中只剩下一个节点为止。 ```c++ int main() { int n = 10; int m = 3; Node* head = createList(n); Node* result = removeNode(head, m); cout << "The last one is: " << result->data << endl; return 0; } ``` 这就是使用C++代码解决约瑟夫问题的基本思路。需要注意的是,在实际编写中,还需要考虑输入的合法性、内存的释放等问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值