#include <stdio.h>
int main(){
// 输入
int x;
scanf("%d",&x);
// 处理:计算换取的硬币数
int cnt[3];
int num=0;
for(cnt[0]=x/5;cnt[0]>=1;--cnt[0]){
for(cnt[1]=x/2;cnt[1]>=1;--cnt[1]){
for(cnt[2]=1;cnt[2]<=x;++cnt[2]){
int sum=5*cnt[0]+2*cnt[1]+cnt[2];
if(sum==x){
int total=cnt[0]+cnt[1]+cnt[2];
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",cnt[0],cnt[1],cnt[2],total);
++num;
}
}
}
}
// 输出
printf("count = %d\n",num);
return 0;
}
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
// 返回:自幂数->true 否则->false
bool isNarcissistic(int number){
// 求正整数的位数
int cnt=0;
int tmp=number;
while(tmp>0){
++cnt;
tmp/=10;
}
// 求幂和
int sumPow=0;
tmp=number;
while(tmp>0){
sumPow+=pow(tmp%10,cnt);
tmp/=10;
}
return sumPow==number;
}
int main(){
// 输入
int n;
scanf("%d",&n);
// 输出:递增顺序输出所有n位水仙花数
int lower=pow(10,n-1);
int upper=pow(10,n)-1;
for(int i=lower;i<=upper;++i){
if(isNarcissistic(i)){
printf("%d\n",i);
}
}
return 0;
}
#include <stdio.h>
// 返回:最大公约数
int gcd(int m,int n){
return n==0?m:gcd(n,m%n);
}
// 返回:最小公倍数
int lcm(int m,int n){
return m*n/gcd(m,n);
}
int main(){
// 输入
int m,n;
scanf("%d %d",&m,&n);
// 处理:求最大公约数和最小公倍数
int g=gcd(m,n);
int l=lcm(m,n);
// 输出
printf("%d %d\n",g,l);
return 0;
}
#include <stdio.h>
#include <math.h>
int main(){
// 输入
double height,n;
scanf("%lf %lf",&height,&n);
// 处理:
// 计算第n次落地总距离
double sum=0;
if(n==1){
sum=height;
}else if(n>=2){
sum=height*(3.0-1.0/pow(2,n-2));
}
// 计算第n次反弹的高度
double heightN=0;
if(n!=0){
heightN=height/pow(2,n);
}
printf("%.1f %.1f\n",sum,heightN);
return 0;
}
#include <stdio.h>
int main(){
// 输入
int n;
scanf("%d",&n);
// 边界处理
if(n==1){
printf("* \n");
return 0;
}
// 输出:正三角+分界线+倒三角
int layer=n/2;
// 正三角
for(int i=1;i<=layer;++i){
// 空格
int blk=n+1-2*i;
for(int j=1;j<=blk;++j){
printf(" ");
}
// 字符
int ch=2*i-1;
for(int j=1;j<=ch;++j){
printf("* ");
}
// 换行
printf("\n");
}
// 分界线
for(int j=1;j<=n;++j){
printf("* ");
}
printf("\n");
// 倒三角
for(int i=1;i<=layer;++i){
// 空格
int blk=2*i;
for(int j=1;j<=blk;++j){
printf(" ");
}
// 字符
int ch=n-2*i;
for(int j=1;j<=ch;++j){
printf("* ");
}
// 换行
if(i<layer){
printf("\n");
}
}
return 0;
}
#include <stdio.h>
int main(){
// 输入
int n;
scanf("%d",&n);
// 处理:求第一天摘的桃子
int result=1;
for(int i=1;i<n;++i){
result=2*(1+result);
}
// 输出
printf("%d",result);
return 0;
}
#include <stdio.h>
int main(){
// 输入
int n;
scanf("%d",&n);
// 边界处理
if(n==1){
printf("1\n");
return 0;
}
// 处理:求最少需要的月数
int month=2;
int nums[3]={0,1,1};
// 滚动更新
while(nums[2]<n){
++month;
nums[0]=nums[1];
nums[1]=nums[2];
nums[2]=nums[0]+nums[1];
}
// 输出
printf("%d",month);
return 0;
}
#include <stdio.h>
#include <ctype.h>
int main(){
// 输入
char cur;
cur=getchar();
// 输出
while(cur!='\n'){
char ch;
if(islower(cur)){
if(cur=='z') ch='A';
else ch=toupper(cur+1);
}else if(isupper(cur)){
if(cur=='Z') ch='a';
else ch=tolower(cur+1);
}else{
ch=cur;
}
putchar(ch);
cur=getchar();
}
return 0;
}
#include <stdio.h>
#include <stdbool.h>
int main() {
int result, num;
char op;
bool isError = false;
// 无法读取第一个整数
if (scanf("%d", &result) != 1) {
printf("ERROR");
return 0;
}
// 读取运算符,直到读取到=
while (scanf("%c", &op) == 1 && op != '=') {
// 读取到非法运算符
if (op != '+' && op != '-' && op != '*' && op != '/') {
isError = true;
break;
}
// 读取下一个操作数
if (scanf("%d", &num) != 1) {
isError = true;
break;
}
switch (op) {
case '+':
result += num;
break;
case '-':
result -= num;
break;
case '*':
result *= num;
break;
case '/':
// 除0错误
if (num == 0) {
isError = true;
break;
}
result /= num;
break;
}
if (isError){
break;
}
}
if (isError) {
printf("ERROR");
} else {
printf("%d", result);
}
return 0;
}
#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
int main(){
char pre=' ';
char cur;
while((cur=getchar())!=EOF){
// 句子第一个字母字符
// 和前一个字符是空格的小写字母字符需要改为大写字母
if(islower(cur) && pre==' '){
putchar(toupper(cur));
}else{
putchar(cur);
}
pre=cur;
}
return 0;
}