程序说明
操作系统:win7 64位专业版
集成环境:vs2010
以下代码经过测试好用
(1) 1, 2, 4, 7, 8, 11, 14, 16, 17, 19, 22,26, 28, 29, 41, 44, ?
(2) 中间缺少关于3和5的数,3的倍数,5的倍数,和带3和带5的数;
(3) 源程序代码
/************************************
输入:输入一个数n;该数大于1,小于1000
输出:输出为一个规律的数列,数列的长度为n
**************************************/
#include<stdio.h>
int judgeFive(int n);
int judgeThree(int n);
int judgeHaveFive(int n);
int judgeHaveThree(int n);
int main(void)
{
int i=1;
int j=0;
int nLen; //数列的长度
printf("请输入数列的长度:");
scanf("%d",&nLen);
if(nLen>1000&&nLen<0)
{
printf("此数不符合要求");
return 0;
}
for(i=1;;i++)
{
if(!(judgeFive(i)||judgeThree(i)||judgeHaveFive(i)||judgeHaveThree(i)))
{
printf(" %d",i);
j++;
}
if(j==nLen)
{
break;
}
}
}
/************************************
判断是否是3的倍数
输入:输入一个数n
输出:如果是3的倍数,输出1,如果不是,输出0
**************************************/
int judgeThree(int n)
{
if(n%3==0)
{
return 1;
}else
{
return 0;
}
}
/************************************
判断是否是5的倍数
输入:输入一个数n
输出:如果是5的倍数,输出1,如果不是,输出0
**************************************/
int judgeFive(int n)
{
if(n%5==0)
{
return 1;
}else
{
return 0;
}
}
/************************************
判断数中是否有5
输入:输入一个数n
输出:数中有5,输出1,如果不是,输出0
**************************************/
int judgeHaveFive(int n)
{
int i=1;
if(n>99)
{
if(500<n&&n<599) //判断百位
{
return 1;
}
i=n/10;
if(50<=i&&i<=59)
{
return 1;
}
}
if(50<=n&&n<=59) //判断十位
{
return 1;
}
return 0;
}
/************************************
判断数中是否有3
输入:输入一个数n
输出:数中有3,输出1,如果不是,输出0
**************************************/
int judgeHaveThree(int n)
{
int i=1;
if(n>99)
{
if(300<n&&n<399) //判断百位
{
return 1;
}
i=n/10;
if(30<=i&&i<=39) //判断十位
{
return 1;
}
}
if(30<=n&&n<=39) //判断十位
{
return 1;
}
if((n%100==3)||(n%10==3)) //判断各位
{
return 1;
}
return 0;
}