教一下小白吧
从键盘输入一组整型数,以-1为结束,统计这组数据吉祥数(被8整除或含有8的数)的个数,并输出这组数据中的吉祥数。
用c语言
[解决办法]
int i,j=0;
while(1)
{
scanf("%d",&i);
if(i==-1)break;
if(i%8==0||(i-(i/10))==8)
j++;
}
printf("%d\n",j);
[解决办法]
- C/C++ code
#include<stdio.h>#include<string.h>bool isok(int n){ char str[20] = {0}; sprintf(str, "%d", n); for(int i = 0; i < (int)strlen(str); ++i) { if(str[i] == '8') return true; } return false;}int main(){ while(1) { int num; scanf("%d", &num); if(num == -1) { break; } if(num % 8 == 0 || isok(num)) { printf("%d ", num); } } return 0;}
[解决办法]
if(i%8==0||(i-(i/10))==8)
应该等价与 if(i%8==0) 等价与 if(!(i%8))