求1+2+…+n,要求不能使用乘除法、for、while、if、else...
2011-08-20 00:34
204 查看
题目:求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
其实会有很多种解法,但是下面给出了一个简单的代码-----巧用递归算法。
顺便记录下一些容易忘记的题目:
int a[3][5],*p=a,(*)q[5]=a;设a的地址为2000,则下述语句的输出的结果??
printf(“%u%u\n”,p+6,*(q+1)+4);
理解不了的地方:(*)q[5]=a,这句话是什么意思呢?实在是费解,还请大牛给分析下
首先说明这短短两条语句,却包括了两处语法错误:1,*p = a 这句是不合法的,两个值的类型不同,前者是整形指针,后者是数组指针,如果你一定要这样做的话应该这样写 *p = (int *)a 强制转换; 2,(*)q[5] = a 这句也是不对的(或者是我见识少,从未见过这种写法),程序的意思可能是这样 (*q)[5] = a 将q定义为数组指针。
经过两处改动后,再来看,假如a的地址是2000,int是4个字节的话。那么p+6的值就是2000 + 4*6 = 2024; *(q+1)+4 的值就是 2000 + 5*4 + 4*4。
最后,你说(*)q[5]=a 不理解,我认为是不解 (*q)[5] = a 这句,其实这是定义了一个数组指针,该指针指向的是一个数组。例如 ++q,是将q移动一个数组的距离,在本例中就是 4*5 。
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
其实会有很多种解法,但是下面给出了一个简单的代码-----巧用递归算法。
#include <stdio.h> #include <stdlib.h> #include <string.h> int add_fun(int n, int & sum) { n && add_fun(n-1, sum); return (sum += n); } int main() { int sum = 0; int n = 100; printf("1+2+...+n = %d\n", add_fun(n, sum)); return 0; }
顺便记录下一些容易忘记的题目:
int a[3][5],*p=a,(*)q[5]=a;设a的地址为2000,则下述语句的输出的结果??
printf(“%u%u\n”,p+6,*(q+1)+4);
理解不了的地方:(*)q[5]=a,这句话是什么意思呢?实在是费解,还请大牛给分析下
首先说明这短短两条语句,却包括了两处语法错误:1,*p = a 这句是不合法的,两个值的类型不同,前者是整形指针,后者是数组指针,如果你一定要这样做的话应该这样写 *p = (int *)a 强制转换; 2,(*)q[5] = a 这句也是不对的(或者是我见识少,从未见过这种写法),程序的意思可能是这样 (*q)[5] = a 将q定义为数组指针。
经过两处改动后,再来看,假如a的地址是2000,int是4个字节的话。那么p+6的值就是2000 + 4*6 = 2024; *(q+1)+4 的值就是 2000 + 5*4 + 4*4。
最后,你说(*)q[5]=a 不理解,我认为是不解 (*q)[5] = a 这句,其实这是定义了一个数组指针,该指针指向的是一个数组。例如 ++q,是将q移动一个数组的距离,在本例中就是 4*5 。
相关文章推荐
- C语言奇思妙想:求1+2+…+n,要求不能使用乘除法、for、while、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- 【编程题目】求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句
- 剑指Offer(Java版): 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 求1+2+3+...+n,要求不能使用乘除法,for,while,if,else,switch,case等关键字以及条件判断语句
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
- 题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- 实现1+2+3...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- 求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)和不用循环/goto/递归输出1~100的10种写法
- 智力题总结——求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
- 求 1+2+...+n, 要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句 (A?B:C)。
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。