用C语言编写:对于任一个正整数n,求一个最小的正整数m,使n*m的结果为0和1组成的。
4个回答
展开全部
#include"stdio.h"
mian()
{
int n,m,b,s;
m=1;
b=1;
scanf("%d",&n);
if(n==1)
printf("n=1,\nm=10,\ns=10");
else if(n==2)
printf("n=2,\nm=5,\ns=10");
else
{
s=n*m;
while(s>b)
{
if(s/b%10!=1||s/b%10!=0)
m++;
s=n*m;
else
b=b*10;
}
printf("%d\n%d\n%d\n",n,m,s);
}
}
这是我自己编的不一定对,要不对,你编译一下,把错误提示发回来就行。
有问题再在问
在一个上个回答者的程序中明显有个while (1)死循环,永远跳不出死循环,不只怎么得出结果,绝无嘲笑意思,就是请教。
mian()
{
int n,m,b,s;
m=1;
b=1;
scanf("%d",&n);
if(n==1)
printf("n=1,\nm=10,\ns=10");
else if(n==2)
printf("n=2,\nm=5,\ns=10");
else
{
s=n*m;
while(s>b)
{
if(s/b%10!=1||s/b%10!=0)
m++;
s=n*m;
else
b=b*10;
}
printf("%d\n%d\n%d\n",n,m,s);
}
}
这是我自己编的不一定对,要不对,你编译一下,把错误提示发回来就行。
有问题再在问
在一个上个回答者的程序中明显有个while (1)死循环,永远跳不出死循环,不只怎么得出结果,绝无嘲笑意思,就是请教。
展开全部
#include <stdio.h>
int main()
{
int i,j,k,n,x;
i=1;
char str[20];
printf("请输入一个大于0的数:\n");
scanf("%d",&n);
while(n<=0)
{
printf("输入错误,请重新输入!\n");
scanf("%d",&n);
}
while(1)
{
j=i*n;
sprintf(str,"%d", j);
for(k=0,x=0;str[k]!='\0';k++)
x++;
for(k=0;str[k]!='\0';)
if(str[k]=='1'||str[k]=='0')
k++;
else
str[k]='\0';
if(x==k)
{
printf("最小数为:%d",i);
break;
}
else
{i++;
if(i>=65535)
{printf("数据溢出!");
break;}
}
}
}
本人测试OK!
对于楼下问题,通过
if(x==k)
{
printf("最小数为:%d",i);
break;
}
跳出循环!
还有问题,请指出!
此程序当n=157时,会出现数据溢出的问题。
int main()
{
int i,j,k,n,x;
i=1;
char str[20];
printf("请输入一个大于0的数:\n");
scanf("%d",&n);
while(n<=0)
{
printf("输入错误,请重新输入!\n");
scanf("%d",&n);
}
while(1)
{
j=i*n;
sprintf(str,"%d", j);
for(k=0,x=0;str[k]!='\0';k++)
x++;
for(k=0;str[k]!='\0';)
if(str[k]=='1'||str[k]=='0')
k++;
else
str[k]='\0';
if(x==k)
{
printf("最小数为:%d",i);
break;
}
else
{i++;
if(i>=65535)
{printf("数据溢出!");
break;}
}
}
}
本人测试OK!
对于楼下问题,通过
if(x==k)
{
printf("最小数为:%d",i);
break;
}
跳出循环!
还有问题,请指出!
此程序当n=157时,会出现数据溢出的问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(m = 1 ; ;m++){
int number = n*m;
while(number != 0){
if(number %10 >1){
break;
}
number = number /10;
}
if(number == 0){
printf("%d", m);
break;
}
}
int number = n*m;
while(number != 0){
if(number %10 >1){
break;
}
number = number /10;
}
if(number == 0){
printf("%d", m);
break;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道哇。。我也坐等高人解答!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询