1、奇数倍数:先找到是2019的倍数,再判断每个数是不是奇数
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// 请在此输入您的代码
int a,i,j,k,t;
for(a=2019;;a++){
if(a%2019==0)
{
t=0;
k=a;
while(k)
{
j=k%10;
if(j%2==0)
{
t=1;
break;
}
k/=10;
}
}
if(t==0)
{
printf("%lld",a);
return 0;
}
}
}
2、分数:分别求出分子分母,找前面1/1、3/2、7/4,15/8、31/16的规律可知,分母是2的19次方,分子是2的20次方减1。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// 请在此输入您的代码
int a,b;
a=pow(2,20)-1;
b=pow(2,19);
printf("%d/%d",a,b);
return 0;
}
3、货物摆放:一开始我是想确定两个数,第三个数再用总数除以前两个数,再判断第三个数是不是整数,如果是则sum++,但是好像没有推断一个数是不是整数的方法。所以前面就得判断两个数是不是总数的因子,再判断第三个数,再判断三个数能进行几种排列就好了。还有这是个填空题,要是输出sum会运行超时,我就直接输出答案了。
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long n=2021041820210418;
long i,j,k,s;
int sum=0;
for(i=1;i*i*i<=n;i++){
if(n%i==0){
s=n/i;
for(j=i;i*j*j<=n;j++){
if(s%j==0){
k=n/i/j;
if(i==j&&i==k)
sum++;
else if(i==j&&i!=k)
sum+=3;
else
sum+=6;
}
}
}
}
// printf("%d",sum);
printf("2430");
return 0;
}