用10以内三个不同的质数组成一个同时是3和5的倍数的最大三位数是多少?
编程解决问题的过程为:
10以内的质数有2, 3, 5, 7共四个数,存储在一个数组中
设定一个最大值变量,初始化为0
在这四个数中,任取三个,组成一个三位数,则,需要对这四个数进行排列组合选取:
四选三的排列组合方法为:采用三层循环,当各个数不相同时,输出当前组合
对每一组组合数,转换成一个整数,判断是否同时是3和5的倍数
如果是,则与当前最大值比较,如果大于当前最大值,则,变更最大值为当前数。
否则,继续选取下一组数据
循环结束后,输出最大值。
参考代码:
#include <stdio.h>
int main()
{
int a[]={2,3,5,7};
int i,j,k,n,max=0;
for( i=0;i<4;i++ )
for( j=0;j<4;j++ )
for( k=0;k<4;k++ )
if ( i!=j && i!=k && j!=k )
{
n=a[i]*100+a[j]*10+a[k] ; //转换成一个三位数
if ( n%5==0 && n%3==0 ) //判断是否同时是3和5的倍数
if ( max < n ) //判断是否是最大
max=n;
}
printf("%d\n", max );
return 0;
}
输出结果:735