/*地址 http://yzfy.org/bbs/viewthread.php?tid=417&extra=page%3D1 题目描述:7是一个恶魔数字,如果一个数是7的倍数,或者它的数位上含有数字7,那么这个数也是恶魔数字输入:多组测试数据,每组只有一行,一行只有一个整数n(1<=n<=1e(1e5)),最后输入一个0来表示结束输出:判断这个数是不是恶魔数字,是的话输出yes,否则输出no样例输入:7171470940样例输出:yesyesyesyesno*//*例#include <cstdio> using namespace std; unsigned int data[70];char str[100002]; int main(){ for (unsigned int i = 0; i < 70; ++i)data[i] = i%7; //记录每个数和7的余数,为后面除法作准备 unsigned int tmp = 0; for (;gets(str) != NULL;) { if ((str[0] == '0')&&(str[1] == '\0')) return 0; else { tmp = 0; const char* pc = str; for (;*pc != '\0';++pc) { if (*pc == '7') { puts("yes"); break; } else { tmp = data[tmp*10+*pc-'0'];//关键在这里 } } if (*pc == '\0') { tmp?puts("no"):puts("yes"); } } } return 0;} */

评论