本文目录一览:
C语言指针问题170
t10
是按位与运算
就是把两个数用2进制表示出来,然后每一个2进制位进行逻辑比较,同是1才为1,否则为0
例如:
56
101110
101
110
----
100
结果是4
c语言编程:计算170的阶乘
前几天正好做过一个,用数组记录结果,暴力算法模拟手工计算过程,谈不上效率
#include stdio.h
#define N 10000
int main()
{
int a[N]={1};
char d[4]={0};
int i,j,t,e,f=1,m=0;
int l=0;
int k=0;
int n;
char ch='N';
printf("n=");
scanf("%d",n);
for(i=1;i=n;i++)
{
for(j=0;j=l;j++)
{
a[j]=a[j]*i+k;
k=a[j]/10000;
a[j]=a[j]%10000;
}
if(k)
{
l++;
a[j]=k;
k=0;
}
}
t=a[l];
while(t)
{
d[m]=t%10;
t/=10;
m++;
}
e=4*l+m-1;
if(e30)
{
printf("%d!=%d.",n,d[m-1]);
for(i=m-2;i=0;i--)
{
printf("%d",d[i]);
}
for(i=0;i8;i++)
{
printf("%04d",a[l-1-i]);
}
printf("E+%d\n",e);
printf("输出精确值?(Y/N)");
getchar();
ch=getchar();
if(ch!='y'ch!='Y')
f=0;
}
if(f)
{
i=l;
printf("%d!=%d",n,a[i--]);
for(;i=0;i--)
{
printf("%04d",a[i]);
}
}
printf("\n");
return 0;
}
n=170
170!=7.2574156153079989673967282111292631E+306
输出精确值?(Y/N)y
170!=7257415615307998967396728211129263114716991681296451376543577798900561843401706157852350749242617459511490991237838520776666022565442753025328900773207510902400430280058295603966612599658257104398558294257568966313439612262571094946806711205568880457193340212661452800000000000000000000000000000000000000000
请按任意键继续. . .
如何用c语言编程打印2-170之间的所有素数,要求每行输出13个素数。
#include stdio.h
#include math.h
int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/
{
int i;
for (i=2; i=(int)sqrt((double)n); i++)
if (n%i==0) return 0;
return 1;
}
int main(void)
{
int i,j=0;
for (i=2; i=170; i++)
if(ss(i))
{
j++;
printf("%5d",i);
if (j%13==0) printf("\n");
}
printf("\ntotal prime=%d\n",j);
return 0;
}