int main()
{int m,n,max=1,min=1,i,x,j,sum=0,count=0;
scanf("%d %d",&m,&n);
for(i=0;i<n-1;i++)
{max=max*10;
min=max;}
max=max*10-1;
for(i=min;i<=max;i++)
{x=i;
for(j=1;j<=n;j++)
{if((x%10)==m)
{if((x%m)!=0)
{sum=sum+i;
count++;
}
}x=x/10;}}
printf("%d %d\n",count,sum);
return 0;
}
哪里有问题,结果不对啊
设m.n为正整数,含有数字m且不能被m整除的n位整数的个数为g,这些数的和为s,计算g和s
答案:3 悬赏:40 手机版
解决时间 2021-01-03 05:54
- 提问者网友:鼻尖触碰
- 2021-01-03 01:58
最佳答案
- 五星知识达人网友:野慌
- 2021-01-03 03:09
int main()
{
int m,n,max=1,min=1,i,x,j,sum=0,count=0;
scanf("%d %d",&m,&n);
for(i=0;i<n-1;i++)
{
max=max*10;
min=max;
}
max=max*10-1;
for(i=min;i<=max;i++)
{
x=i;
if(i%m==0) //先判断是否能被m整除,如果能直接跳过
continue;
for(j=1;j<=n;j++)
{
if((x%10)==m)
{
sum=sum+i;
count++;
break; //符合条件立即跳出循环
}
x=x/10;
}
}
printf("\n%d %d\n",count,sum);
return 0;
}
{
int m,n,max=1,min=1,i,x,j,sum=0,count=0;
scanf("%d %d",&m,&n);
for(i=0;i<n-1;i++)
{
max=max*10;
min=max;
}
max=max*10-1;
for(i=min;i<=max;i++)
{
x=i;
if(i%m==0) //先判断是否能被m整除,如果能直接跳过
continue;
for(j=1;j<=n;j++)
{
if((x%10)==m)
{
sum=sum+i;
count++;
break; //符合条件立即跳出循环
}
x=x/10;
}
}
printf("\n%d %d\n",count,sum);
return 0;
}
全部回答
- 1楼网友:思契十里
- 2021-01-03 04:14
#include "stdio.h"
void main() {
int m, n;
printf_s("enter m = ");
scanf_s("%d", &m);
printf_s("enter n = ");
scanf_s("%d", &n);
// 求出n位整数的上下限
int max = 1, min = 1;
for(int i=0; i
- 2楼网友:拜訪者
- 2021-01-03 03:29
for(i=min;i<=max;i++)
{
x=i;
if((x%m)!=0)
{
for(j=1;j<=n;j++)
{
if((x%10)==m)
{
sum=sum+i;
count++;
}
x=x/10;
}
}
}把不能被m整除放在外面判断,否则你的x值在改变,x%m的判断就是错误的,你要么放在外面要么改成i%m
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯