解题思路:
注意事项:
参考代码:
#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 人评分
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:724 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:582 |
1024题解浏览:806 |
C二级辅导-等差数列 (C语言代码)浏览:808 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:509 |
多输入输出练习2 (C语言代码)浏览:1655 |
简单的a+b (C语言代码)浏览:504 |
P1002 (C++代码)浏览:706 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:640 |
数字统计 (C语言代码)浏览:1095 |