-
zzlu000
2008-07-17
-
http://topic.csdn.net/u/20080710/19/d8d71779-d2c2-4f5b-94a4-5d71a4e1bc19.html
-
zzlu000
2008-06-30
-
#include<stdio.h><br />#include <math.h><br />#include "time.h"<br />/*for save the result*/<br />typedef struct <br />{<br /> int multiplicator;<br /> int multiplicand;<br /> long product;<br />} storage;<br /><br />storage retNo[10];<br />/******************************************************************************<br /> @function: main()<br /> @description: main function<br /> @parameters: void<br /> @returns: void<br /> @author: zhangzhl<br /> @keyword: <br /> *****************************************************************************/<br />void main()<br />{<br /> clock_t start,end;<br /> start=clock();<br /> int multiplicator[63]={0},multiplicand[576]={0};<br /> int ret,retNum[10]={0};<br /> int mcatorcnt=0,mcandcnt=0,cnt=0,idx=0;<br /> bool check_have_repeat(int,int);<br /> char Num[5] ={0};<br /> char i,j,k;<br /> for(i=1;i<10;i++)<br /> {<br /> Num[1] = i;<br /> for(j=1;j<10;j++)<br /> {<br /> if(j==i)continue;<br /> Num[0] = j;<br /> multiplicator[mcatorcnt] = Num[0]*10 + Num[1];<br /> if (multiplicator[mcatorcnt] <23)continue;<br /> mcatorcnt++;<br /> }<br /> }<br />/*for creat num*/<br /> for (i=1;i<10;i++)<br /> {<br /> Num[4] = i;<br /> for(j=0;j<10;j++)<br /> {<br /> if(j==i)continue;<br /> else<br /> {<br /> Num[3] = j;<br /> for (k=1;k<10;k++)<br /> {<br /> if(k==j||k==i)continue;<br /> Num[2] = k;<br /> multiplicand[mcandcnt] = Num[2]*100 + Num[3]*10 + Num[4];<br /> mcandcnt++;<br /> }<br /> }<br /> }<br /> }<br />/*for creat num*/<br /> for (i=0;i<mcatorcnt;i++)<br /> {<br /> for (cnt=0;cnt<mcandcnt;cnt++)<br /> {<br /> if(check_have_repeat(multiplicand[cnt],multiplicator[i])==false)continue;<br /> else<br /> {<br /> ret = multiplicator[i]*multiplicand[cnt];<br /> if(ret>=10234&&ret<=98765)<br /> {<br /> if((check_have_repeat(ret,multiplicand[cnt])==false)||(<br /> check_have_repeat(ret,multiplicator[i])==false))continue;<br /> retNo[idx].multiplicator = multiplicator[i];<br /> retNo[idx].multiplicand = multiplicand[cnt];<br /> retNo[idx].product = ret;<br /> idx++;<br /> }<br /> <br /> }<br /><br /> }<br /> }<br /> /*put out the result*/<br /> for (i =0; i <idx; i++)<br /> {<br /> printf("%d * %d = %d\n",retNo[i].multiplicator,retNo[i].multiplicand,retNo[i].product);<br /> }<br /> end=clock();<br /> printf("\1: The different is %6.3f\n",(double)(end-start));<br />}<br />/******************************************************************************<br /> @function: check_have_repeat()<br /> @description: check if the number is repeated<br /> @parameters: int int<br /> @returns: bool<br /> @author: zhangzhl<br /> @keyword: <br /> *****************************************************************************/<br />bool check_have_repeat(int numOne,int numTwo)<br />{<br /> bool flag=true;<br /> int firNum,secNum,tag=0,iNum=0;<br /> firNum = numOne;secNum = numTwo;<br /> if (firNum>10000)<br /> {<br /> if (firNum%10==firNum/10%10||firNum%10==firNum/100%10||firNum%10==firNum/1000%10||firNum%10==firNum/10000)flag=false;<br /> if (firNum/10%10==firNum/100%10||firNum/10%10==firNum/1000%10||firNum/10%10==firNum/10000)flag=false;<br /> if(firNum/100%10==firNum/1000%10||firNum/100%10==firNum/10000)flag=false;<br /> if(firNum/1000%10 == firNum/10000)flag=false;<br /> }<br /> for(tag = firNum;tag>0;tag=tag/10)<br /> {<br /> iNum = tag%10;<br /> if(iNum==secNum%10||iNum==secNum/10%10)<br /> flag = false;<br /> if(secNum>100&& iNum ==secNum/100%10)<br /> flag = false;<br /> }<br /> return flag;<br />}<br />
-
zzlu000
2008-06-26
-
#include<stdio.h><br />#include <math.h><br /><br />void main()<br />{<br /> int multiplicator,multiplicand,ret;<br /> char Num[10] ={0};<br /> int i,j;<br /> bool check_have_repeat(int,int);<br /> for (i=12;i<99;i++)<br /> {<br /> multiplicator = i;<br /> for (j=102;j<988;j++)<br /> {<br /> multiplicand = j;<br /> if(check_have_repeat(multiplicator,multiplicand)==false)<br /> {<br /> continue;<br /> }<br /> else<br /> {<br /> /*printf("%d%d\t",multiplicator,multiplicand);*/<br /> ret = multiplicand*multiplicator;<br /> if(ret>=10234&&ret<=98765)<br /> {<br /> if(check_have_repeat(multiplicator,ret)==false||check_have_repeat(multiplicand,ret)==false)continue;<br /> printf("%d*%d = %d\n",multiplicator,multiplicand,ret);<br /> }<br /> }<br /> }<br /> }<br /> printf("Just do it!");<br />}<br /><br /><br />bool check_have_repeat(int x,int y)<br />{<br /> bool flag=true;<br /> char xlen=0,ylen=0;<br /> char temp[10] = {0};<br /><br /> while(x/int(pow(10,xlen))!=0)<br /> {<br /> xlen++;<br /> }<br /><br /> while(y/int(pow(10,ylen))!=0)<br /> {<br /> ylen++;<br /> }<br /><br /> for (int i=0;i<xlen;i++)<br /> {<br /> temp[i] = x/int(pow(10,i))%10;<br /> }<br /><br /> for (int j=xlen;j<xlen+ylen;j++)<br /> {<br /> temp[j] = y/int(pow(10,j-xlen))%10;<br /> }<br /><br /> for (int k=0;k<xlen+ylen-1;k++)<br /> {<br /> for (int l=k+1;l<xlen+ylen;l++)<br /> {<br /> if(temp[k] == temp[l])<br /> {<br /> flag = false;<br /> }<br /> }<br /> if (flag == false)<br /> {<br /> break;<br /> }<br /> }<br /> <br /> return flag;<br />}