void find(const char *str)
{
int len = (int)strlen(str) ;
char *result = new char[len - 1] ;
for (int i = len / 2 ; i >= 1 ; i--)
{
for (int x = 0 ; x < len - i ; x++)
result[x] = (str[x + i] == str[x]) ;
for (int x = 0, c = 0 ; x < len - i ; x++)
{
if (result[x]) c++ ; else c = 0 ;
if (c == i)
{
for (int y = 0 ; y < i ; y++)
printf("%c", str[x - i + y + 1]) ;
delete[ ] result ;
return ;
}
}
}
delete[ ] result ;
printf("No match!") ;
}
第二题:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int* fab = new int[1024];
int* prime = new int[2048];
int getNum(int k)
{
fab[0] = fab[1] = 1;
prime[0] = 2;
int j = 2;
for(int i = 1;i < k ;)
{
int tmp = fab[j-1] + fab[j -2];
fab[j++] = tmp;
int m = 0;
for(; m < i ; m ++)
{
if(tmp % prime[m] == 0)
break;
}
if( m == i )
prime[i++] = tmp;
}
return prime[k -1];
}
第二题:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int* fab = new int[1024];
int* prime = new int[2048];
int getNum(int k)
{
fab[0] = fab[1] = 1;
prime[0] = 2;
int j = 2;
for(int i = 1;i < k ;)
{
int tmp = fab[j-1] + fab[j -2];
fab[j++] = tmp;
int m = 0;
for(; m < i ; m ++)
{
if(tmp % prime[m] == 0)
break;
}
if( m == i )
prime[i++] = tmp;
}
return prime[k -1];
}
3. (中文版, 英文版皆可) (含一张配套光盘)
中文名: Programming Windows程式开发设计指南(第五版)
作者: Charles Petzold
英文名: Programming Windows by Charles Petzold (Fifth Edition)
Microsoft Press