#include
int my_test(int num){
if(num<=9) {
if(num==5) return 1;
}
else if(num<=99) {
if ((num%10==5)||(num/10==5)) return 1;
}
else if((num%10==5)||(num/10==5)||(num/100==5))
return 1;
return 0;
}
main(){
int i,sum=0;
int flag=0;
for (i=1;i<1000;i++){
if((i%3==0) && (my_test(i)==1)) {
// printf("%d\t",i);
flag++;
sum+=i;
}
}
printf("sum=%d,flag=%d\n",sum,flag);
}
结果 sum=32949,flag=66
估计是判断“且至少有一位上的数是5”不会了,呵呵
给你个算法,你看看行不行
flag=0;
while(x)
{
if(x%10==5)
{
flag=1; //这个用了标记5的
break;
}
x/=10;
}
int n=0,h=0; //n是个数,h是和
for(int i=3;i<1000;i+=3){
if(i.toString().indexOf('5')>=0){n++;h+=i;}
}
参看:
http://zhidao.baidu.com/question/6562844.html