【C语言】把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
来源:互联网 发布:2017微信数据报告 编辑:程序博客网 时间:2024/05/17 22:23
来看一个很有意思的一个题目。
题目是这样的:
请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
看到这个题当时我也是蒙了。
首先想到用的是递归来实现,
但是怎么跳出这个循环呢?
我想了想,有人给了提示,可以使用与来判断:
先看代码:
#include <stdio.h>int print(int num){num && print(num-1);printf("%d ",num);return num;}int main(){int num = 1;print(1000);return 0;}
看到这个代码,对C了解的人应该清楚这个是什么意思了.
在C语言中,&&这个逻辑条件的判断是前面为1,在继续判断后面的这个条件。
所以这样一看就很简单了,将递归调用放在与条件的第二个,然后使用与的规则就可以很简单的调用
其实还有一种算法,但是我在VS2010中调试却不能够使用:
这个算法意思就是使用在程序中除数不能够为0而跳出循环,结果却是输出,所以这种方法是不可以的。
然后还有一种方法就很有意思了。
其实在这种方法的第一想法,很有意思的人就想到我就打1000个printf嘛。
这是一个办法,但是实在太过于笨拙了。
其实宏是一个很强大的功能,你们可以用宏来使用。
#include <stdio.h>#define OUT(i) printf("%d\n",i++);#define NEC(N) N N N N N N N N N N//10^n的printf#define OUTT(i) NEC(NEC(NEC(OUT(i))))int main(){int i = 1;OUTT(i);return 0;}
这个宏替换就十分有意思了,几行代码,代表的是1000个printf,哈哈
本文出自 “剩蛋君” 博客,请务必保留此出处http://memory73.blog.51cto.com/10530560/1682921
0 0
- 【C语言】把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
- 请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
- 不使用任何的循环语句或是条件语句把从1到1000的数打印出来
- [转]输出从1到1000的数,不能使用循环和条件语句
- C语言:循环语句的使用 打印三角阵
- 【c语言】不能使用循环语句和判断语句,求1-100所有整数的和
- 从1到1000的数打印出来
- 打印 1--1000(不能使用条件运算符. 不能使用循环语句)(转自csdn论坛)
- C语言中循环语句的使用
- 【C语言】不使用循环和判断语句,求出1-100之间所有数的和
- C语言的循环语句
- C语言比较两个数的大小使用if-else语句和条件运算符
- C语言笔试题精选1---求两个数之间较大的数,不使用if、while、switch、for、?:/以及任何比较语句
- 计算从1加到100不使用循环和条件语句。
- 不用条件和循环语句打印出1~1000
- 从条件语句和循环语句的条件入手,优化程序
- C语言的循环语句(4.24)
- C#不允许使用循环语句、条件语句,在控制台中打印出1-1000这1000个数
- 【C语言】在字符串中找出第一个只出现一次的字符。 如输入“abaccdeff”,则输出'b'。
- 【C语言】杨氏矩阵C语言实现
- 【C语言】学生成绩链表的录入
- 【C语言】在终端输入多行信息,找出包含“ould”的行,并打印改行。
- 【C语言】冒泡排序与回文判断
- 【C语言】把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。
- 【C语言】strlen的三种实现方法,strcmp,strcat,strcpy
- 【C语言】 字符串的内存拷贝处理函数
- java中volatile关键字的含义
- 【C语言】主函数的参数探幽
- CSS3实战1-文本属性text-shadow的用法
- 【c语言】输出一组数中有2个出现了1次的数
- 引用CDN内容的方法总结
- 【c++】vector用法