04-0. 求符合给定条件的整数集(15)
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出全部由它们组成的无重复数字的3位数。编程
输入格式:函数
输入在一行中给出A。测试
输出格式:code
输出知足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。游戏
输入样例:
2
输出样例:
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
分析:这道题用三个循环嵌套就能够了,可是要注意一下输出格式io
#include
int main()
{
int num,i,j,k,count=0;
scanf("%d",&num);
for(i=num;i
{
for(j=num;j
{
for(k=num;k
{
if(i!=j && i!=k && j!=k)
{
count++;
if(count%6==0)
printf("%d\n",i*100+j*10+k);
else
printf("%d ",i*100+j*10+k);
}
}
}
}
return 0;
}
04-1. 水仙花数(20)
水仙花数是指一个N位正整数(N>=3),它的每一个位上的数字的N次幂之和等于它自己。例如:153 = 13 + 53+ 33。本题要求编写程序,计算全部N位水仙花数。class
输入格式:基础
输入在一行中给出一个正整数N(3<=N<=7)。随机数
输出格式:循环
按递增顺序输出全部N位水仙花数,每一个数字占一行。
输入样例:
3
输出样例:
153
370
371
407
分析:很经典的一道题,相信都作过,也就是2个循环嵌套就能实现,特别须要注意若是用系统的math.h中的pow函数最后一个测试会超时,由于pow函数是以浮点数进行计算的,而题目中的都是正整数,因此本身写一个函数求指数次方就好。
#include
int main()
{
int N,i,j,k,m,sum;
scanf("%d",&N);
for(i=fun(10,N-1);i
{
sum=0;
k=i;
for(j=1;j<=N;j++)
{
m = k%10;
sum += fun(m,N);
k /= 10;
}
if(sum == i)
printf("%d\n",i);
}
}
int fun(int base,int exponent)
{
int sum = 1,i;
for(i=1;i<=exponent;i++)
{
sum *= base;
}
return sum;
}
04-2. 打印九九口诀表(15)
下面是一个完整的下三角九九口诀表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
本题要求对任意给定的1位正整数N,输出从1*1到N*N的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1<=N<=9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
分析:最基础的编程题了,就是注意下格式就好,就不解释了
#include
int main()
{
int N,i,j;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%-4d",j,i,i*j);
}
printf("\n");
}
}
04-3. 统计素数并求和(20)
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出2个正整数M和N(1<=M<=N<=500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
分析:就是一个判断素数的问题,太基础了,很少说
#include
#include
int isprime(int x)
{
int i,tmp;
if(x==2)
return 1;
if(x==0 || x==1)
return 0;
else
{
for(i=2;i*i<=x;i++)
{
if(x%i==0)
return 0;
}
}
return 1;
}
int main()
{
int M,N;
int i;
int count=0,sum=0;
scanf("%d %d",&M,&N);
for(i=M;i<=N;i++)
{
if(isprime(i)==1)
{
count++;
sum += i;
}
}
printf("%d %d",count,sum);
}
04-4. 猜数字游戏(15)
猜数字游戏是令系统随机产生一个100之内的正整数,用户输入一个数对其进行猜想,须要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),仍是小了(“Too small”),相等表示猜到了。若是猜到,则结束程序。程序还要求统计猜的次数,若是1次猜出该数,提示“Bingo!”;若是3次之内猜到该数,则提示“Lucky You!”;若是超过3次可是在N(>3)次之内(包括第N次)猜到该数,则提示“Good Guess!”;若是超过N次都没有猜到,则提示“Game Over”,并结束程序。若是在到达N次以前,用户输入了一个负数,也输出“Game Over”,并结束程序。
输入格式:
输入第一行中给出2个不超过100的正整数,分别是系统产生的随机数、以及猜想的最大次数N。随后每行给出一个用户的输入,直到出现负数为止。
输出格式:
在一行中输出每次猜想相应的结果,直到输出猜对的结果或“Game Over”则结束。
输入样例:
58 4
70
50
56
58
60
-2
输出样例:
Too big
Too small
Too small
Good Guess!
分析:这道题要仔细分析题目,把那几个判断弄清楚,而后用一个循环读输入就行,这道题把那些判断分清就出来了
#include
int main()
{
int a,b,count=0;
scanf("%d %d",&a,&b);
while(1)
{
int num;
count++;
scanf("%d",&num);
if(num<0)
{
printf("Game Over");
break;
}
if(num
printf("Too small\n");
else if(num>a)
printf("Too big\n");
else
{
if(count==1)
printf("Bingo!");
else if(count<=3)
printf("Lucky You!");
else if(count<=b)
printf("Good Guess!");
else
printf("Game Over");
break;
}
}
}