解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int kow(int n)
{
int i,sum=1;
for(i=0;i<n;i++)
sum*=2;
return sum;
}
int suan(int n,int m,int t)
{
int i,z=1;
for(i=0;i<t;i++)
z*=m;
n = (n-48)*z;
return n;
}
int main()
{
int k,w,number=0,i,chang,j,flag,z ,u;
char sz[30001],two[30001];
scanf("%d%d",&k,&w);
u = kow(k);
for(i=u;;i++)
{ itoa(i,sz,u);
chang = strlen(sz);
for(j=chang,flag=1;j-2>=0;j--)
{
if(sz[j-2]>=sz[j-1]) flag = 0;
}
for(z=0,j=0;j<chang;j++)
{
z+=suan(sz[j],u,chang-j-1);
}
itoa(z,two,2);
chang = strlen(two);
if(chang>w)
{
flag = 0;
break;
}
if(flag==1) number++;
}
printf("%d",number);
return 0;
}
用于itoa函数只能在windows平台上运行,所以这个程序提交会显示编译错误,但是这个程序的思想是正确的。我试一下别的函数,如果提交成功我再修改一下代码。
0.0分
2 人评分
printf基础练习2 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:511 |
C语言训练-自由落体问题 (C语言代码)浏览:1775 |
【亲和数】 (C语言代码)浏览:908 |
【求[X,Y]内被除3余1并且被除5余3的整数的和】 (C语言代码)浏览:703 |
C语言训练-自由落体问题 (C语言代码)浏览:650 |
a+b浏览:452 |
1012题解浏览:938 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
时间转换 (C语言代码)浏览:697 |