正整数n的各位数字中是否包含数字3或4,是则返回TRUE,否则返回FALSE。
// 判断整数n的各位数字中是否包含数字3或4
bool Valid(int n)
{
if(1<=n&&n<=9)
{
if(n==3||n==4)
{
return true;
}
else
{
return false;
}
}
else if(10<=n&&n<=99)
{
int a,b=0;
a=n/10;
b=n%10;
if((a==3)||(b==4)||(a==4)||(b==3))
{
return true;
}
else
{
return false;
}
}
else if(100<=n&&n<=999)
{
int a,b,c=0;
a=n/100;
b=n/10%10;
c=n%10%10;
if((a==3)||(b==3)||(c==3)||(a==4)||(b==4)||(c==4))
{
return true;
}
else
{
return false;
}
}
else if(1000<=n&&n<=9999)
{
int a,b,c,d=0;
a=n/1000;
b=n/100%10;
c=n%10%100;
d=n%10%10%10;
if((a==3)||(b==3)||(c==3)||(d==3)||(a==4)||(b==4)||(c==4)||(d==4))
{
return true;
}
else
{
return false;
}
}
else if(10000<=n&&n<=99999)
{
int a,b,c,d,e=0;
a=n/10000;
b=n/1000%10;
c=n/100%100%10;
d=n/10%100%10;
e=n%10%10%10%10;
if((a==3)||(b==3)||(c==3)||(d==3)||(e==3)||(a==4)||(b==4)||(c==4)||(d==4)||(e==4))
{
return true;
}
else
{
return false;
}
}
}
更为简便的方法是一位位判断:
bool Valid(int n)
{
if (n < 0)
{
n = -n;
}
while (n > 0)
{
if (n % 10 == 3 || n % 10 == 4)
{
return true;
}
n = n / 10;
}
return false;
}