程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++程序設計實踐指導1.15找出回文數改寫要求實現,程序設計實踐1.15

C++程序設計實踐指導1.15找出回文數改寫要求實現,程序設計實踐1.15

編輯:C++入門知識

C++程序設計實踐指導1.15找出回文數改寫要求實現,程序設計實踐1.15


改寫要求1:用單鏈表實現

#include <cstdlib>
#include <iostream>

using namespace std;
struct LinkNode
{
       int data;
       LinkNode *next;
};
class PALINDROME
{
      int low,up;
      int a[100];
      int count;
      public:
             PALINDROME(int t1,int t2);
             int IsPalin(int x);
             LinkNode* IsPalinAndStore();
             void OutputResults(LinkNode* Head);
};

PALINDROME::PALINDROME(int t1,int t2)
{
   count=0;
   low=t1;
   up=t2;
}
LinkNode* PALINDROME::IsPalinAndStore()
{
     LinkNode* Head=new LinkNode;
     Head->next=NULL;
     LinkNode* p=Head;
     for(int i=low;i<=up;i++)
     {
             int x=i*i;
             if(IsPalin(x))
             {
                LinkNode* newLinkNode=new LinkNode;
                newLinkNode->next=NULL;
                newLinkNode->data=i;
                p->next=newLinkNode;
                p=newLinkNode;
             }
     }
     return Head;
}
void PALINDROME::OutputResults(LinkNode* Head)
{
     LinkNode* p=Head->next;
     cout<<"count="<<count<<endl;
     cout<<"x"<<'\t'<<"x*x"<<endl;
     while(p)
     {
        cout<<p->data<<'\t'<<p->data*p->data<<endl;
        p=p->next;
     }
}
int PALINDROME::IsPalin(int x)
{
    int i=0,j,n;
    int a[100];
    while(x)
    {
       a[i]=x%10;
       x=x/10;
       i++;
    }
    n=i;
    for(i=0,j=n-1;i<=j;i++,j--)
       if(a[i]!=a[j])
          return 0;
       return 1;
}
int main(int argc, char *argv[])
{
    LinkNode* Head=new LinkNode;
    PALINDROME p(100,1000);
    Head=p.IsPalinAndStore();
    p.OutputResults(Head);
    system("PAUSE");
    return EXIT_SUCCESS;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved