Bailian2887 能被3,5,7整除的数入门
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bailian2887 能被3,5,7整除的数入门相关的知识,希望对你有一定的参考价值。
2887:能被3,5,7整除的数
总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个整数,判断它能否被3,5,7整除,并输出以下信息:
1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);
2、能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者 3 7或者5 7,中间用空格分隔)
3、能被其中一个数整除(输出这个除数)
4、不能被任何数整除;(输出小写字符’n’,不包括单引号)
输入
一个数字
输出
一行数字,从小到大排列,包含3,5,7中为该输入的除数的数字,数字中间用空格隔开
样例输入
0
5
15
105
样例输出
3 5 7
5
3 5
3 5 7
提示
因为有多组测试数据,程序通过下面方式读入n
int n;
while(cin>>n)
{
//你的代码
}
good luck:)
问题链接:Bailian4098 第二大价值
问题简述:(略)
问题分析:
按Markdown格式重写了题解,旧版题解参见参考链接。
解法一:各种整除组合输出
根据各种整除组合输出结果,对于输出行末尾不能有空格是有效的。
解法二:逐一判定输出结果
按顺序分别判定能否被3、5、7整除,并输出结果,输出行末尾带有空格。这是一种直接解法,代码比较简单。
解法三:通用编程
将除数放入除数数组中,编写一个通用的解题程序。当题目要求的除数改变时,例如判定能否被5、7、11整除,只需要改变除数数组初始值即可,不需要修改程序。
采用通用编程,输出行末尾也输出空格。
程序说明:(略)
参考链接:Bailian2887 能被3,5,7整除的数【入门】
题记:通用编程值得推荐。
AC的C语言程序(解法三:通用编程)如下:
/* Bailian2887 能被3,5,7整除的数 */
#include <stdio.h>
int fact[] = {3, 5, 7};
int main(void)
{
int n, m, i;
while (scanf("%d", &n) != EOF) {
m = sizeof(fact) / sizeof(int);
for (i = 0; i < m; i++)
if(n % fact[i] == 0)
printf("%d ", fact[i]);
printf("\\n");
}
return 0;
}
AC的C语言程序(解法二:逐一判定输出结果)如下:
/* Bailian2887 能被3,5,7整除的数 */
#include <stdio.h>
int main(void)
{
int n;
while (scanf("%d", &n) != EOF) {
if (n % 3 == 0) printf("3 ");
if(n % 5 == 0) printf("5 ");
if(n % 7 == 0) printf("7 ");
printf("\\n");
}
return 0;
}
AC的C语言程序(解法一:各种整除组合输出)如下:
/* Bailian2887 能被3,5,7整除的数 */
#include <stdio.h>
int main(void)
{
int n;
while(scanf("%d", &n) != EOF) {
if(n % 3 == 0 && n % 5 == 0 && n % 7 == 0)
printf("3 5 7\\n");
else if(n % 3 == 0 && n % 5 == 0)
printf("3 5\\n");
else if(n % 3 == 0 && n % 7 == 0)
printf("3 7\\n");
else if(n % 5 == 0 && n % 7 == 0)
printf("5 7\\n");
else if(n % 3 == 0)
printf("3\\n");
else if(n % 5 == 0)
printf("5\\n");
else if(n % 7 == 0)
printf("7\\n");
else
printf("\\n");
}
return 0;
}
以上是关于Bailian2887 能被3,5,7整除的数入门的主要内容,如果未能解决你的问题,请参考以下文章
C语言编程输出1~1000内既能被3整除又能被7整除的数的和