本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
*****
***
*
***
*****
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:
输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。
输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:
19 *
输出样例:
***** *** * *** ***** 2
#include <stdio.h>
int main() {
int a, i;
char b;
scanf("%d %c", &a, &b);
if (a < 17)
printf("%d", a);
else if (a >= 17) {
for (i = a; i >= 17; i = i - 17) {
printf("%c%c%c%c%c\n", b, b, b, b, b);
printf(" %c%c%c \n", b, b, b);
printf(" %c \n", b);
printf(" %c%c%c \n", b, b, b);
printf("%c%c%c%c%c\n", b, b, b, b, b);
}
printf("%d", i);
}
return 0;
}
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
#include <stdio.h>
int main() {
int M, N, i, j, sum = 0;
scanf("%d %d", &M, &N);
for (i = M; i <= N; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0)
break;
}
if (j == i) {
printf("%d\n", i);
sum = sum + i;
}
}
printf("%d", sum);
return 0;
}
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
#include <stdio.h>
int main() {
int a, i, j, b, d, k = 0;
scanf("%d", &a);
b = (a / 5 );
for (i = b; i >= 1; i--) {
for (j = ((a - i * 5) / 2); j >= 1; j--) {
d = a - i * 5 - j * 2;
if (d >= 1) {
k++;
printf("fen5:%d,fen2:%d,fen3:%d,total:%d\n", i, j, d, i + j + d);
} else if (d == 0)
continue;
}
}
printf("count=%d", k);
return 0;
}
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤7)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
3
输出样例:
153 370 371 407
#include <stdio.h>
#include <math.h>
int main() {
int a, sum = 0, N, i, t, j, g;
scanf("%d", &N);
for (i = pow(10, N - 1); i < pow(10, N) ; i++) {
for (j = 0; j <= N - 1; j++) {
g = pow(10, j);
t = pow((i / g ) % 10, 3);
sum = sum + t;
}
if (sum == i)
printf("%d\n", i);
sum = 0;
}
return 0;
}
标签:输出,语言,int,sum,样例,c%,循环,printf,分支 From: https://www.cnblogs.com/xiaohaiyang/p/16967604.html