从1到100,每数到7的时候,把该数字提出来,剩下的数字继续循环,问最后剩下的一个数字是多少。

    技术2025-11-20  14

    题目: 从1到100,每数到7的时候,把该数字 提出来,剩下的数字继续循环,问最后剩下的一个数字是多少。

    思路:使用循环链表

     

    代码:

    #include <iostream> using namespace std; const int totalnum = 100; typedef struct NUMBER {     int num;     struct NUMBER *next; }Number; Number *Head = NULL; Number *Tail = NULL; void InputNum() {     int i;     Number *tmp = NULL;     tmp = new Number;     tmp->num = 1;     tmp->next = Head;     Head = tmp;     Tail = tmp;     Tail->next = Head;     for(i = 1 ; i< totalnum;i++){         tmp = new Number;         tmp->num = i+1;         Tail->next = tmp;     tmp->next = Head;     Tail = tmp;     } } void OutPutNum() {     Number *tmp = NULL;     Number *pre = NULL;     int i = 6;     tmp = Head;     while(tmp!= tmp->next)     {            pre = tmp;       tmp = tmp->next;          i--;         if(0 == i)         {             pre->next = tmp->next;             delete tmp;             tmp = new Number;             tmp = pre->next;             i = 6;             continue;         }             }     cout<<tmp->num<<endl; } int main(int argc,char *argv[]) {     InputNum();     OutPutNum();         return 0; }

    最新回复(0)