准备记录一下自己不太会的c语言练习题,方便之后考研复习
学习的过程是从简单到难,所以写的代码也是从简单到复杂,使用的方法也不唯一
希望自己能坚持下去QAQ
目录
1、对称数
Description
输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值;例如 12321是对称数,输出yes,124421是对称数,输出yes,1231不是对称数,输出no
Input
一个整型数
Output
输出是yes,或者no
这个题我的思想是:输入的整数逆序过来和该整数相同,就是对称数
那么如何实现逆序呢,我用的方法是循环
下面是我的代码:
#include <stdio.h>
int main() {
int x,y;
scanf("%d",&x);
int temp_x=x;//把原来的x存下来
while(x){
y=y*10+x%10;//把个位换成最高位,依次递减,实现逆序
x/=10;//x逐渐降位
}
if(y==temp_x){
printf("yes");
}else{
printf("no");
}
}
2、换钱
Description
某人想将手中的一张面值100元的人民币换成10元、5元、2元和1元面值的票子。要求换正好40张,且每种票子至少一张。问:有几种换法?
Input
无输入
Output
一个数,表示共有多少种换法
这个题我想的很复杂,结果实现起来很简单,就是通过循环
下面是我的代码:
#include <stdio.h>
int main() {
int x,y,z,w;//表示100、5、2、1的张数
int cnt=0;
for(int x=1;x<=10;x++){
for(int y=1;y<=20;y++){
for(int z=1;z<=40;z++){
for(int w=1;w<=40;w++){
if(x+y+z+w==40&&(x*10+y*5+z*2+w==100)){
cnt++;
}
}
}
}
}
printf("%d",cnt);
}
持续更新up!up!