一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, n, a, b, c, d;
...
阅读全文
素数指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着非常重要的地位。
问题:输出1~n之间的所有素数,每行一个。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(int argc, char *argv[])
{
int i,j, flag;
i=49;
flag=1; // 先...
阅读全文
for循环(水仙花数)
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数字本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。
有两种思路来求水仙花数:分离和合成
假设 i 是三位整数,分别用整数 a、b、c来表示其百位数、十位数和个位数。
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main()
{
int i,a,b,c;
for (i=100; i<=999; i++) {
a=i/100...
阅读全文
二重循环(九九乘法表)
如何输出如下所示的九九乘法表呢?
1x1= 1
1x2= 2 2x2= 4
1x3= 3 2x3= 6 3x3= 9
1x4= 4 2x4= 8 3x4=12 4x4=16
1x5= 5 2x5=10 3x5=15 4x5=20 5x5=25
1x6= 6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7= 7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8= 8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9= 9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=811x1= 1
1x2= 2 2x2= 4
1x...
阅读全文
【问题:3n+1问题】
猜想:对于任意大于1的自然数,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次这样的变换,一定会使n变为1。例如3→10→5→16→8→4→2→1。
输入n,输出变换的次数。n≤109。
样例输入:3
样例输出:7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main()
{
int n, c;
scanf("%d", &n);
c = 0;
while(n > 1) {
...
阅读全文
【问题:迭代法求根】
函数fun功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。
迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,将x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出结果Root=0.739086。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
...
阅读全文
【问题:爱因斯坦的数学题】
爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶?本题有多个答案,只需要输出其中的最小值。
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int i;
for(i=1; ;i++...
阅读全文
问题:统计1000~10000之间平方数的个数(包含1000和10000)
说明: 9=3*3,25=5*5, 81=9*9,9、25、81都是平方数,80不能表示成某个数的平方,所以就不是平方数。
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int c=0, i;
for (i=1; i<=100; i++) {
if (i*i<1000) continue;
c++;
}
printf("%d\n",...
阅读全文
三种基本方式:for、while和do while
【问题:求1+2+......+100之和】
计算机无法识别......,但这种运算可以用循环来表示。
1
2
3
4
5
sum = 0;
sum = sum + 1;
sum = sum + 2;
......
sum = sum + 100;sum = 0;
sum = sum + 1;
sum = sum + 2;
......
sum = sum + 100;
计算机最常用的一个操作就是累加,就是在原来的基础上增加。上面的运算可以简化成两步:初始化,重复累加
1
2
sum = 0;
sum = sum + i; i 的...
阅读全文
1
2
3
4
5
6
7
8
9
10
11
// 2011_09_B_08
#include <stdio.h>
int main()
{
int i, j;
for(i=6; i>3; i--)
j=i;
printf("%d%d\n",i,j);
return 0;
}// 2011_09_B_08
#include <stdio.h>
int main()
{
int i, j;
for(i=6; i>3; i--)
j=i;
printf("%d%d\n",i,j);
return...
阅读全文