-
#include
int main(void){
int number;
number = (0+100)*101/2;
printf("%d", number);
return 0;
当然,也可以用循环来解决问题,示例程序:
#include
int main(void){
int i;
int number;
number = 0;
for (i=0; i<=100; +i)number += i;
printf("%d", number);
return 0;
通常,使用等差级数的求和公式。
方法较快,但中间过程可能超出了整形的范围,但这可以通过简单的处理来解决。 虽然使用循环语句不会导致中间数据超出范围的问题,但程序速度较慢。
-
判断一个素数,就是把每个数从10到100取一个循环,然后嵌套循环,把每个数i和2 i-1之间的所有数求和,只要一个是可整除的,就不是素数,否则就是素数。 (素数只能被 1 和它本身整除)。
得到的素数存储在数组中,直接定义数组,保存在循环判断中(数组可以用malloc动态应用,我演示了直接定义固定大小,变量len用于记录保存数据的长度)。
#include
int main(void)
int i,j,num[90],len=0;
for(i=10;i<=100;i++)
for(j=2;jif(i==j) num[len]=i,len++;
打印。 printf("10 到 100 之间的质数是:");
for(i=0;iprintf("%d ",num[i]);
return 0;
-
1 All 表示读取的数据是按位异或的,异或算法为:
真或假的结果是真的,假或真的结果也是真的,真或真的结果为假,假或假的结果是假的。 也就是说,如果两个值不相同,则 XOR 结果为 true。 否则,它是错误的。
异或也叫半加法运算,其算法等价于无进位的二元加法:在二进制下,1表示真,0表示假,那么异或的算法为:0异或0=0,1异或或0=1,0异或1=1,1异或1=0(与0相同,与1不同), 这些规则与加法相同,但没有进位。
a^b^b= a ^ b ^ b) = (a ^ b) ^b;这是XOR的算法。
a = 111 1001 0001 1011
b = 101 0010 0110 1111
异或: 010 1011 0111 0100
b = 101 0010 0110 1111
XOR 再次 111 1001 0001 1011 与 a 相同,所以它是 31003
可以得出结论,一个数字和相同的数字是异或的 2 倍,结果不变。
可以证明 1 0 = 1 1 0 = 1,两次运算后仍为 1
0 0 = 0 0 0 = 0,两次操作后仍为 0
1 1 = 0 0 1 = 1,经过两次运算后仍为 1
0 1 = 1 1 1 = 0,两次运算后仍为 0。 认证。
-
a b 表示 a 和按位 XOR,相同的位是 0,差是 1,两个相同的数字“XOR”是 0,任何带有 0 “XOR” 的数字都不会改变。 因此,a b b 的结果仍然是
-
表示异或,1 0 = 1,1 1 = 0,0 0 = 0,0 1 = 1,同样是 0,差是 1,131003 的二进制是 11110010001101121103 二进制是 101001001101111111a b 的结果是 010101101110101010a b 的结果是 111100100011011 是 31003
事实上,无论a或b是什么,都存在a b b = a,a b a = b
-
它是一个移位符号,因此 A 移动两次并返回原点,原点应向右移动。
-
A 是正确的,p->name 和等效的。
b 是错误的,*p 等价于 temp,所以使用 (*p)->name 是错误的,你必须使用一个点即 (*p)name。
c 是正确的,因为 -> 的优先级最高,所以首先得到 p->name 的值"chou",是一个字符数组,可以使用数组名 p->name 作为第一个地址,*p->name 是 p->name[0],即这个字符数组的第一个字符'c'然后'c'+2 得到 'e'
d 正确,则 p->name 的值为"chou",是一个字符数组,可以取数组名p->name作为第一个地址,*(p->name+2)是p->name[2],也就是这个字符数组的第三个字符,所以是'o'
-
b。原因是名称的 ASCII 代码是 +2,即 E。
数组字符串的名称表示第一个地址 C,ASCII 代码 +2 是 E。
-
假设 ni 表示阶数为 i 的节点数,对于二叉树,公式 n0 = n2 + 1 成立。
二进制链表中的每个节点都有两个指针,一个在左边,一个在右边。 因此,n 个节点的二叉树指针总数为 2*n。
在 n 个节点中,每个度数为 1 的节点都有一个指针标识,每个度数为 0 的节点有两个指针标识。
因此,2*n0 + n1 就足够了。
有 n1 = n - n0 - n2
所以 2*n0 + n1 = 2 * n0 + n - n0 - n2 = n + n0 - n2
再次 n0 = n2 + 1,有 n0 - n2 = 1
因此,2*n0 + n1 = n + 1
综上所述,问题 10 中的第一个空格是 2n,第二个空格是 n + 1
思路:要求一个正整数n的位数,可以先定义一个变量num,并初始化为0,将整数n依次除以10,直到为0,每除以10,变量num的个数就会加1,最后一个num的值就是整数n的位数。 >>>More