7-1 打印九九口诀表
下面是一个完整的下三角九九口诀表:
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
本题要求对任意给定的一位正整数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<stdio.h>
int main()
{
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++)
{
for(int j=1;j<=i;j++){
printf("%d*%d=%-4d",j,i,i*j);
}
printf("\n");
}
return 0;
}
7-2 百钱买百鸡问题
公鸡每只5元,母鸡每只3元,小鸡1元3只,而且鸡必须整只买。100元钱买100只鸡(每一种鸡都要有),公鸡、母鸡、小鸡各多少只?请编写程序给出各种购买方案。
输入格式:
输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照公鸡只数从少到多排列的。
输出格式:
显示前n种方案中公鸡、母鸡、小鸡各多少只。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。
注意:如果全部方案不到n种,就顺序输出全部可能的方案。
输入样例:
5
结尾无空行
输出样例:
在这里给出相应的输出。例如:
4 18 78
8 11 81
12 4 84
结尾无空行
#include<stdio.h>
int main()
{
int N,i,j,k,count=0;
scanf("%d",&N);
for(i=1;i<=19;i++)
{
for(j=1;j<=32;j++)
{
for(k=3;k<=98;k++)
{
if(i*5+j*3+k/3==100&&i+j+k==100&&k%3==0)
{
if(count<N)
{
count++;
printf("%d %d %d\n",i,j,k);
}
}
}
}
}
return 0;
}
7-35 找完数 (20 分)
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
输入样例:
2 30
结尾无空行
输出样例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
结尾无空行
#include<stdio.h>
int main ()
{
int m,n,i,j,sum,k,h=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++){
if(i%j==0){
sum+=j;
}
}
if(sum==i){
printf("%d = 1",i);
for(k=2;k<j;k++){
if(i%k==0){
printf(" + %d",k);
}
}
printf("\n");
h++;
}
}
if(h==0){
printf("None\n");
}