当前位置: 代码迷 >> C语言 >> Skew数
  详细解决方案

Skew数

热度:339   发布时间:2007-10-11 23:27:51.0

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
int tra(char ch)
{
char *str;
int m;
str=(char *)malloc(6);
str[0]=ch;
str[1]='\0';
m=atoi(str);
return m;
}
int fun2(char a[])
{
int L;
int g=0;
int m;
int n=1;
int N=0;
long b=0;
long sum=0;
long fun(int n);
int t=0;
int h=0;
getchar();
L=strlen(a);
for(n=L-1;n>=0;n--)
{
N++;
if(a[n]==2)
g++;
if(g==2)
{printf("worng");break;}
m=tra(a[n]);
b=m*(fun(N)-1);
sum=sum+b;
}
printf("%d\n",sum);
if(g==2)
{return 4;}
}
long fun(int n)
{
long b=1;
int i=1;
for(i=1;i<=n;i++)
b=b*2;
return b;
}
int main()
{
char *a[1000];
int k=0;
int j=0;
while(1)
{
a[k]=(char *)malloc(32); fflush(stdin);
scanf("%s",a[k]);

j=fun2(a[k]);
if(j==4)
break;
}
getch();
return 0;
}
发一个

----------------解决方案--------------------------------------------------------
我用turbo c 编译不过。
这不符合c语言语法啊
----------------解决方案--------------------------------------------------------
以上2个程序编译都通过!并能计算!
只是在输入的时候不能识别输入的是否是skew数,比如12345这个数,用sanf可以输入,但此数字并不是skew数,计算还是按照固定算法没有识别!


----------------解决方案--------------------------------------------------------
是啊
----------------解决方案--------------------------------------------------------
楼主你根据上面的程序自己修改一下好了!工作量应该不大的!
----------------解决方案--------------------------------------------------------
谢谢啊
----------------解决方案--------------------------------------------------------