鱼C论坛

 找回密码
 立即注册
查看: 3593|回复: 11

s=2^2!+3^2!怎么理解?

[复制链接]
发表于 2014-3-30 11:24:50 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>


long square(int p);
long factorial(int q);
void main()
{
        int i;
        long s=0;
        for(i=2;i<=3;i++)
        {
                s=s+square(i);
        }
        printf("%ld\n",s);
       
}
long square(int p)
{
        int k;
        long r;
        long factorial(int);
        k=p*p;
        r=factorial(k);
        return r;
}
long factorial(int q)
{
        long c=1;
        int i;
        for(i=1;i<=q;i++)
        {
                c+=i;
        }
        return c;


}

最佳答案

查看完整内容

看这位鱼友想表达的是,先用这个没有含有他问题的代码然后引出他想要问的问题,果然是一招投石问路的好方法。像这位鱼友的问题为:s = 2^2 + 3^2是怎么理解的,其实不难,首先你要明白各运算符号之间的优先级,在你的这个问题中,^运算符的优先级低于+运算符,所以先进行3+2运算为5,然后语句变为s = 2^2^5,然后又知道^异或是这样的:相同位为零,不同位为1,所以上述式子s = 2^5^2为: s = 0000 0010 ^ 0000 1001 ^ 0000 0010, ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 11:24:51 | 显示全部楼层
看这位鱼友想表达的是,先用这个没有含有他问题的代码然后引出他想要问的问题,果然是一招投石问路的好方法。像这位鱼友的问题为:s = 2^2 + 3^2是怎么理解的,其实不难,首先你要明白各运算符号之间的优先级,在你的这个问题中,^运算符的优先级低于+运算符,所以先进行3+2运算为5,然后语句变为s = 2^2^5,然后又知道^异或是这样的:相同位为零,不同位为1,所以上述式子s = 2^5^2为:
s = 0000 0010 ^ 0000 1001 ^ 0000 0010,如果你发现了式子中其中2^2的 0 1表示是相同的,所以首先2^2=0,然后拿0^5= 0000 0000 ^ 0000 1001,最后结果为s = 5。
不知道我的解答你懂了没有?如果懂了明白了,请大力并且拼命的点赞,至于为什么,你懂的……:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 11:49:08 | 显示全部楼层
朋友!你说的这个 s=2^2!+3^2!;程序中没有啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 20:45:08 | 显示全部楼层
!非运算优先等级最高,不过一般用法是   !表达式 ……  也不知道你这个怎么会放后面了…… 优先级看的话,先!   再+    最后按位异或  完事了赋值   ……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-30 21:05:45 | 显示全部楼层
2的平方的阶乘 就是 4的阶乘  就是 4*3*2*1=24
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-31 12:28:48 | 显示全部楼层
学习一下 这真不熟悉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-31 17:30:30 | 显示全部楼层
s=2^2!+3^2!,^这个不是异或优先级符号,是求2的平方的阶乘+3的平方的阶乘。
进入for循环,i=2,先调用square(i)求出2的平方,再调用factorial(k)求出4的阶乘。当i>3时,退出for循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-31 19:06:50 | 显示全部楼层

那如果像你说的那样,那你求出的结果是多少??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-1 10:05:16 | 显示全部楼层
4!=24,9!=362880。4!+9!=362904。 QQ截图20140401100510.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-5 19:54:48 | 显示全部楼层
偶来也,调试了N久才找到POINT------
#include <stdio.h>
#include <math.h>

long square(int p);     //声明求平方的函数square
long factorial(int q);  //声明求阶乘的函数factorial

void main()
{
        int i;          //定义整型变量i
        long s=0;       //定义长整变量s,并赋值
        for(i=2; i<=3; i++)       //进入for循环
        {
                s = s + square(i);  //在等式中调用函数square
        }
        printf("%ld\n",s);      //输出2^2! + 3^2! 的结果
        
}
long square(int p)      //定义函数square, 在此p=i,
{
        int k;
        long r;
        long factorial(int);        //声明求阶乘的函数factorial,此句可省略,因在开头已经声明过了
        k = p * p;      // 相当于k=i*i,即平方
        r=factorial(k);     
        //调用阶乘函数factorial,
        return r;       //返回r的值给s=s+square(i);
}
long factorial(int q)   //定义函数factorial, 在此q=k,
{
        long c=1;
        int j;          //之所以把i改成j,是为了更易在调试中看懂^^,不改也没问题嘀
        for(j=1; j<=q; j++)  //进入for循环
        {
                c += j;       //此句要改为c *= j, 否则结果是57,而不是4!+9!=362904
                              //相当于计算c=4*3*2*1 及 c=9*8*7*6*5*4*3*2*1
        }
        return c;       //返回c的值给r=factorial(k);


}
{:7_183:}终于交到功课了,嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-5 20:06:12 | 显示全部楼层
这个程序中有2^2!+3^2!么????
在C中!是非的意思但不可能写成2^2!这样 数学中!是阶乘
比如4! = 4 * 3 * 2 * 1
2^2! = 4! 懂??
求阶乘的程序的话
#include<stdio.h>

long int fac(int i);//我是用递归求法

int main()
{
        int i;
        printf("Please Input a number:");
        scanf("%d",&i);
        printf("%d! = %ld\n",i,fac(i));

        return 0;
}
long int fac(int i)
{
        if(1 == i)
        {
                return i;
        }
        else
        {
                return i * fac(i - 1);
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-5 22:19:59 | 显示全部楼层
看看。帮顶下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 01:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表