• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

xiaohaiyang

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

c语言分支与循环

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定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;
}

 

posted on 2022-12-08 22:29  caties  阅读(75)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3