1、排序
ab交换
int t = a;
a = b;
b = t;//ab交换
2、斐波那契数列
求斐波那契数列的第n项。f(1)=1, f(2)=1, f(3)=2, f(n)=f(n-1) + f(n-2)。
f(1)=a f(2)=b f(3)= f(1) + f(2)
c = a + b
a = b
b = c
3、 判断质数
判断一个数n是不是质数,要看n能不能被2~n-1的数整除。
i 循环n-1次
if可以整除,就break 输出不是质数
1 n%2
2 n%3
3 n%4
... ...
n-2 n%n-1
参考思路:可以先定义一个bool变量为true,判断为true输出yes,判断为false输出no
4、求1~100中所有偶数的和
1~100
先定义一个sum
i循环100次判断n是不是偶数,如果是的话sum+=n
5、打印1~100中所有的质数(多重循环)
思路:判断一个数n是不是质数,就是要看这个数能不能被2~n-1的数整除,如果不能就是质数。
外循环决定是哪一个数,内循环判断这个数是不是质数。
当判断一个数具不具有某个特性时,可以定义一个bool变量。满足条件为true,不满足条件为false
6、输入一个n,打印n阶菱形,n是奇数。
曼哈顿距离:|x1-x2|+|y1-y2|
4 | 3 | 2 | 3 | 4 |
3 | 2 | 1 | 2 | 3 |
2 | 1 | 0 | 1 | 2 |
3 | 2 | 1 | 2 | 3 |
4 | 3 | 2 | 3 | 4 |
5阶菱形:小于等于2的地方为*,大于2的地方为空格
n阶菱形:小于等于n/2的地方为*,大于n/2的地方为空格
7、输入一个整数X,输出1到X之间(包括1和X)的全部奇数。
思路:初始值为1,奇数就是i每次加2
8、输入六个数字,他们要么是正数,要么是负数。统计正数的个数。
思路:循环i表示判断次数,cnt表示正数个数
9、给定两个正数X和Y,输出它们之间(不包括X和Y)的所有奇数的和。
10、给定100个数,请你找出其中最大的数字,以及他的输入位置(位置从1开始)
思路:输入一个值,跟最大值进行比较,如果比最大值大就领最大值等于这个值。
11、 读取一系列的整数x,对于每个x,输出一个1,2,3,....x的序列。
先输入一个x,再判断x是不是0
cin >> x是有返回值的,如果返回值为0,不成立。
用逗号隔开的表达式被称为逗号表达式,逗号表达式的值等于最后一个数的值。 只在逻辑表达式中成立。
scanf的写法:
scanf() != -1等价于~scanf()
这几种形式是等价的。
12、读入两个整数,计算从A开始的N个连续整数的和。注意,如果读入的N为0或负数,则继续读取数字直至读入N为正整数为止。
13、输入两个整数N和M,构造一个N行M列的数字矩阵,矩阵中的数字从第一行到最后一行,按从左向右的顺序依次为1,2,3...N*M。矩阵构造完成后,将每行的最后一个数字变为PUM。输出最终矩阵。
思路:输出一个矩阵,双重循环,外循环i是循环每行,内循环j是循环每个数的位置,k是确定每个数的值。
14、余数
输入一个整数N,按顺序输出1到10000之间(不包括1和10000)的所有除以N余2的数字。