关于一个简单的c语言算法!满意的话+100!!

来源:百度知道 编辑:UC知道 时间:2024/06/02 22:44:42
abcd 是一个4位数,fghijk是一个6位数!
什么算法能测试 fghijk中每一位数都属于abcd中的某一位!(可以重复比如说g和k都=b)

谁能给个算法,对的话肯定加分决不食言!!!
循环好像不行!

循环可以吧,随便想的一个:

abcd fghijk对应各位数

int a,b,c,d
int f,g,h,i,j,k;
int flag,tem,m,n;
flag=0;m=0;

a=abcd/100;b=abcd%1000/100;
c=abcd%100/10;d=abcd%10

f=fghijk%100000;g=fghijk%100000/10000;
h=fghijk%10000/1000;i=fghijk%1000/100;
j=fghijk%100/10;k=fghijk%10 取各位数

for(n=1,n<=6,n++)
{if(n==1){tem=f;};
if(n==2){tem=g;};
if(n==3){tem=h;};
if(n==4){tem=i;};
if(n==5){tem=j;};
if(n==6){tem=k;} ; 第一次比较f与abcd,第二次比较g与abcd,

if(tem==a){flag++;};
if(tem==b){flag++;};
if(tem==c){flag++;};
if(tem==d){flag++;} ; 分别比较是否等于abcd

if(flag>0){m++;} ; 这里是防止abcd 中有重复数字 造成flag>1 故用m做
暂时标记.如果只用flag可能最后flag会大于6

}

flag=0;
if(m==6){flag=1;};

最后如果flag=1,那么fghijk中每一位数都属于abcd中的某一位。
这个程序如果用指针来做,可以省掉6个“if(n==1){tem=f;}”以指针的运算实现位数的改变。

把 fghijk和abcd均拆分,然后拿fghijk拆分后的结果和abcd