python特殊a串数列求和pta_C语言题目

一、百钱百鸡问题

问题描述:

中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?

#includeint main()

{

int i,j,k;

for(i=0;i<=100;i++

{

for(j=0;j<=100;j++)

{

for(k=0;k<=100;k++)

{

if(i+j+k==100 && k%3==0 && i*5+j*3+k/3==100)

{

printf("公鸡%d只,母鸡%d只,雏鸡%d只\n",i,j,k);

}

}

}

}

return 0;

}

二、求三个数的最小公倍数

问题描述

输入 3 个数 a、b、c, 求这 3 个数的最小公倍数。

#include

int main()

{

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

int max;

max=a;

if(max

{

max=b;

}

if(max

{

max=c;

}

for(int i=max;;i++)

{

if(i%a==0&&i%b==0&&i%c==0)

{

printf("%d,%d和%d的最小公倍数是%d",a,b,c,i);

break;

}

}

return 0;

}

三、韩信点兵问题

问题描述

求韩信一共有多少兵。

韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从 1 至5报数,最末一个士兵报的数为 1;

按从 1 至 6 报数,最末一个士兵报的数为 5;

按从 1 至 7 报数,最末一个士兵报的数为 5;

按从 1 至 11 报数,最末一个士兵报的数为 10;

按从 1 至 13 报数,最末一个士兵报的数为 11。

请问韩信至少有多少兵?

#include

int main()

{

int i;

for(i=1;;i++)

{

if(i%5==1&&i%6==5&&i%7==5&&i%11==10&&i%13==11)

{

printf("士兵最少有%d个",i);

break;

}

}

return 0;

}

四、猴子吃桃问题

问题描述:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以此往后,到第十天早上想再吃时,就只剩一个桃子了。

#includeint main()

{

int n,sum=0;

scanf("%d",&n);

for(int i=1;i<=n;i++)

{

sum=(sum+1)*2;

}

printf("原有%d个桃子",sum);

return 0;

}

五、水仙花数问题

问题描述:

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1^​3​​+5^​3​​+3^​3​​。 本题要求编写程序,计算所有N位水仙花数。

#include

#include

int main()

{

int n,count=0;

scanf("%d",&n);

printf("%d位数得水仙花数如下:\n",n);

for(int i=pow(10,n-1);i<=pow(10,n);i++)

{

int p=i;

int sum=0;

while(p)

{

int temp=p%10;

int ever=1;

for(int y=0;y

{

ever*=temp;

}

sum+=ever;

p/=10;

}

if(sum==i)

{

printf("%d\n",i);

count++;

}

}

printf("%d位数得水仙花数有%d个",n,count);

}

六、判断日期是否合法

问题描述:

编写一个能判断输入的日期是否合法的小程序。如果合法,则按照年月日的输出此日期,比如1998年6月26日。;否则提示用户:您输入的日期有误,请重新输入!

#include int main(){

int y, m, d;

int tag=0;

int sign=0;

int dayvalid;

scanf("%d,%d,%d", &y, &m, &d);

if(y%4==0&&y%100!=0||y%400==0)

{

sign==1;

}

if(m>=1&&m<=12)

{

switch(m)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

dayvalid=31;

break;

case 4:

case 6:

case 9:

case 11:

dayvalid=30;

break;

case 2:

if(sign==1)

dayvalid=29;

else

dayvalid=28;

break;

deflault:

break;

}

if(d>=0&&d<=dayvalid)

tag=1;

}

if ( tag == 1 )

printf("%d年%d月%d日。", y, m, d );

else

printf("您输入的日期有误,请重新输入!");

return 0;

}

七、求矩阵的对角线和

问题描述:

编写一个能计算4∗4矩阵2条对角线元素之和的小程序。

#include

int main()

{

int i, j;

float a[4][4], sum = 0;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

{

scanf("%f",&a[i][j]);

}

}

for(i=0;i<4;i++)

{

sum+=a[i][i]+a[i][3-i];

}

printf("sum=%f", sum );

return 0;

}

八、输入区间内的素数

问题描述:

输出给定区间内的全部素数,并计算给定区间内有多少个素数。

#include#include

int judgment_prime(int n);

int main()

{

int m,n;

scanf("%d %d",&m,&n);

if(m==1)

{

m=2;

}

printf("区间内的素数如下:\n");

int i,k=0;

for(i=m;i<=n;i++)

{

if(judgment_prime(i)==1)

{

printf("%d ",i);

k++;

}

}

printf("\n%d到%d共有%d个素数。",m,n,k);

}

int judgment_prime(int n)

{

int i,k=1;

for(i=2;i<=sqrt(n);i++)

{

if(n%i==0)

{

k=0;

break;

}

}

return k;

}

九、分解质因数

问题描述:

每个合数都可以写成几个素数相乘的形式,这些素数就是合数的质因数,利用的代码对一个给定的合数进行分解成质因数。

#include#includeint main()

{

int n,i;

scanf("%d",&n);

printf("%d = ",n);

for(i=2;i<=n;i++)

{

while(n!=i)

{

if(n%i==0)

{

printf("%d*",i);

n/=i;

}

else

{

break;

}

}

}

printf("%d",n);

}

十、某个日期是一年中的多少天

问题描述:

输入任意一个日期,编写一个程序输出该日期是一年的第多少天。

#include

int main()

{

int y,m,d;

int m_2,i,sum=0;

printf("今天是:\n");

scanf("%d_%d_%d",&y,&m,&d);

if((y%100!=0&&y%4==0)||y%400==0)

{

m_2=29;

}

else

{

m_2=28;

}

for(i=1;i

{

case 2:sum+=m_2;

break;

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:sum+=31;

break;

default:sum+=30;

break;

}

sum+=d;

printf("是一年中的第%d天",sum);

return 0;

}

十一、十进制转化为二进制

问题描述:

输入一个整数,编写程序输入所对应的二进制数。

#include

int binary(int n);

int main()

{

int n;

scanf("%d",&n);

printf("十进制的%d对应二进制为:",n);

binary(n);

return 0;

}

int binary(int n)

{

if(n==0)

printf("%d",0);

else if(n==1)

printf("%d",1);

else

{

binary(n/2);

printf("%d",n%2);

}

return 0;

}

十二、学生名次排列

问题描述:

输入n个学生的学号、姓名和分数,并且按照分数从高到低给学生排名次。

#include

struct student

{

int id;

char name[10];

float score;

};//定义结构体变量

int main()

{

int i,j,len;

scanf("%d",&len);

struct student temp;

struct student stu[len];

for(i=0;i

{

scanf("%d %s %f",&stu[i].id,stu[i].name,&stu[i].score);

}//输入学生信息

for(i=0;i

{

for(j=0;j

{

if(stu[j].score

{

temp=stu[j];

stu[j]=stu[j+1];

stu[j+1]=temp;

}

}

}//利用冒泡排序按学生分数由高到低排列

printf("*********排序后的学生信息**********\n");

for(i=0;i

{

printf("%d %s %.2f\n",stu[i].id,stu[i].name,stu[i].score);

}//输出

return 0;

}

十三、 平均成绩

问题描述:

给定一所学校学生的体育成绩,请你统计全班的平均成绩和男生、女生的平均成绩。

输入格式:

输入首先在第一行中给出一个正整数 N(≤10000),即全校学生人数。最后 N 行,每行按照格式 性别 成绩 给出一位学生的信息。其中 性别 为 1 表示男生,0 表示女生;成绩 是一个 0 到 100 之间的整数。

输出格式:

在一行中依次输出全班的平均成绩、男生的平均成绩、女生的平均成绩。输出小数点后1位,数字间有一个空格分隔。

注意:如果全是男生或全是女生,则缺少的性别就没有办法计算平均分,相应的位置应该输出一个 X 表示没有。(来源PTA520钻石争霸赛)

#include

int main()

{

int len;

int sex,score;

double sum_1,sum_2,sum;

int cnt_1,cnt_2;

sum=sum_1=sum_2=0;

cnt_1=cnt_2=0;

scanf("%d",&len);

for(int i=0;i

{

scanf("%d %d",&sex,&score);

if(sex==0)

{

sum_1+=score;

cnt_1++;

}

else

{

sum_2+=score;

cnt_2++;

}

}

sum=sum_1+sum_2;

printf("%.2lf ",(double)(sum/(cnt_1+cnt_2)));

if(cnt_1)

{

printf("%.2lf ",(double)(sum_1/cnt_1));

}

else

{

printf("X");

}

if(cnt_2)

{

printf("%.2lf ",(double)(sum_2/cnt_2));

}

else

{

printf("X");

}

return 0;

}

十四、特殊a串数列求和

问题描述:

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。要求输入在一行中给出不超过9的正整数a和n。(来源:pta)

#includeint main()

{

int a,n;

double sum,x;

int i;

sum=0;

x=1;

scanf("%d %d",&a,&n);

if(a>9||a<0||n>9||n<0)

{

return 0;

}

for(i=1;i<=n;i++)

{

sum += x * a;

x=x*10+1;

}

printf("s = %.0lf",sum);

return 0;

}

十五、统计数字

问题描述:

请输入一个整数n,统计[1 , n]范围内各数字之和能被15整除的整数个数,并输出满足条件的整数。(来源Educoder)

#include

int main()

{

int n,i,sum,p,cnt;

cnt=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

sum=0;

p=i;

while(p!=0)

{

sum+=p%10;

p/=10;

}

if(sum%15==0)

{

cnt++;

printf("%d\t",i);

}

}

printf("\n%d",cnt);

return 0;

}

十六、打印菱形

问题描述:

输入打印行数N,输出共2N-1行的菱形。

#include

int main()

{

int n;

scanf("%d",&n);

int i,j,k;

for(i=1;i<=n;i++)

{

for(j=1;j<=n-i;j++)

{

printf(" ");

}

for(k=1;k<=2*i-1;k++)

{

printf("*");

}

printf("\n");

}

for(i=1;i

{

for(j=1;j<=i;j++)

{

printf(" ");

}

for(k=1;k<=2*(n-i)-1;k++)

{

printf("*");

}

printf("\n");

}

}

十七、三个数排序

问题描述:

将输入的任意三个数按从小到大顺序排列;

#include

int main()

{

int a,b,c;

int temp;

printf("输入三个数:");

scanf("%d %d %d",&a,&b,&c);

if(a>b)

{

temp=a;

a=b;

b=temp;

}

if(a>c)

{

temp=a;

a=c;

c=temp;

}

if(b>c)

{

temp=b;

b=c;

c=temp;

}

printf("排列后的顺序为%d

return 0;

}

十八、作业评分

问题描述:

有N个评委打分,去掉一个最高分和一个最低分之后求平均分;

#include

int main()

{

int n,score_1,score;

scanf("%d",&n);

int i=0;

int max,min,sum=0;

scanf("%d",&score_1);

max=min=score_1;

while(i

{

scanf("%d",&score);

if(max

{

max=score;

}

if(min>score)

{

min=score;

}

sum+=score;

i++;

}

sum+=score_1;

printf("%.2lf",(double)(sum-max-min)/(n-2));

return 0;

}

十九、输出月份英文

编程要求:编写一个用指针数组处理的程序,然后输出月份相应的英文名。

#includeint main()

{

int n;

char *p[12]={"January","February","March","April","May","June","July","August","September",

"October","November","December"};

scanf("%d",&n);

printf("%s",*(p+n-1));

return 0;

}

二十、求奇数和

编程要求:在一行输入一系列整数,当读到非正数时表示结束,该数字不做处理;

#include

int main()

{

int sum,n;

sum=0;

scanf("%d",&n);

do

{

if(n%2==1)

{

sum+=n;

}

scanf("%d",&n);

}

while(n>0);

printf("%d",sum);

return 0;

}

你可能感兴趣的:(python特殊a串数列求和pta_C语言题目)