/*#include<stdio.h>
int main(){
int cock,hen,chicken;
for(cock=0;cock<=20;cock++){
for(hen=0;hen<=33;hen++){
for(chicken=0;chicken<=100;chicken++){
if((cock+hen+chicken==100)&&((5*cock)+(3*hen)+(chicken/3.0)==100)){
printf("cock:%2d,hen:%2d,chicken:%2d",cock,hen,chicken);
}
}
}
}
}*/
//优化
#include<stdio.h>
int main(){
int cock,hen,chicken;
for(cock=0;cock<=20;cock++){
for(hen=0;hen<=33;hen++){
chicken=100-cock-hen;
if(5*cock+3*hen+chicken/3.0==100){
printf("cock:%d,hen:%d,chicken:%d",cock,hen,chicken);
}
}
}
}
既然for循环可以解决,while循环也可以,一下是while版本;
#include <stdio.h>
int main()
{
int cock = 0;
int hen;
int chicken;
while (cock <= 20)
{
hen = 0; // 重置 hen 的值
while (hen <= 33)
{
chicken = 100 - cock - hen;
if (5 * cock + 3 * hen + chicken / 3.0 == 100)
{
printf("cock=%d, hen=%d, chicken=%d\n", cock, hen, chicken);
}
hen++;
}
cock++;
}
return 0;
}
找规律:
#include<stdio.h>
int main(){
int count = 0;
for(int a=1;a<=5;a++){
for(int b=1;b<=4;b++){
for(int c=1;c<=3;c++){
count++;
}
}
}
printf("可以有%d种借法",count);
return 0;
}
#include<stdio.h>
int main(){
int a,b,c;
int i=0;
for(int a=1;a<=5;a++){
for(int b=1;b<=5;b++){
for(int c=1;c<=5;c++){
if(a!=b&&a!=c&&b!=c){
printf("A=%d,B=%d,C=%d", a, b, c);
i++;
if(i%4==0)
printf("\n");//做了一个换行,便于输出观察
}
}
}
}
printf("%d种类",i);
return 0;
}
求解本题分两个步骤,先求日期,再取余求打鱼晒网;
1.先判断平年闰年,再判断月,最后加上当前天。
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
// 计算从输入日期到1990年1月1日的天数
int days = 0;
for (int y = 1990; y < year; y++) {
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) {
days += 366;
} else {
days += 365;
}
}
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for (int m = 1; m < month; m++) {
days += daysInMonth[m];
}
days += day;
if ((days % 5) <= 3) {
printf("从 %d年%d月%d日 开始的第 %d 天,这个人打鱼\n", year, month, day, days);
} else {
printf("从 %d年%d月%d日 开始的第 %d 天,这个人晒网\n", year, month, day, days);
}
return 0;
}
今天就到这,明天再更。。。
#include<stdio.h>
int main(){
int i,j,k,temp;
for(i=0; i<=9; i++)
for(j=0;j<=9;j++){
if(i!=j){
k=1000*i+100*i+10*j+j;
for(temp=31; temp<=99; temp++)
if(temp*temp==k)
printf("车牌号为%d",k);
}
}
return 0;
}
数学规律,斐波拉契数列;
int main(){
long fib1=1,fib2=1,fib;
int i;
printf("%121d%121d",fib1,fib2);
for(i=3; i<=30; i++){
fib = fib1+fib2;
printf("%12d",fib);
if(i%4==0)
printf("\n");
fib2=fib1;
fib1=fib;
}
return 0;
}