问题:
吴医生是个很迷信的医生,他认为与4相关的数字都会带来厄运,因此他拒绝为所有挂号单序号中有数字4,或序号能被4整除的病人看病。(每张挂号单有一个唯的序号)
小李是一名年轻的护士,虽然对吴医生的怪癖好不能理解,但他是内科最权威的医生, 小李无法阻止他的我行素。为了能让每个病人都顺利的看上病,小李决定只给病人们不含有数字4,并且不被4整除的序号挂单。
今天门诊部刚开门,就来了n位病人都要挂吴医生的专家门诊(n为正整数,且 n < 50),请问小李能开给这n位病人的挂号单的序号总和最小是多少?
代码如下:
#include<stdio.h>
int four(int x)//函数判断编号是否与4有关?
{
if(x % 4 == 0 || x % 10 == 4 || (x / 10) % 10 == 4)//被4整除,个位上有4,其他位有4
return 1;
else
return 0;
}
int main ()
{
int k = 1;//初始化编号,从1开始:1、2、3、5、6、7、9...
int sum = 0;//计数 :计算编号的总和
int n; //病人人数变量
scanf("%d",&n);//输入人数=n个人
printf("human(number) is :%d\n",n);//
while(n > 0) //for( ;n > 0;n--)
{
if(four(k) == 0)
{
printf("k(number) is :%d\n",k);//
sum = sum + k;
k++;
n--;
}
else
{
k++;
}
}
printf("sum is:%d\n",sum);//
return 0;
}
参考GitHub:libpku