0
点赞
收藏
分享

微信扫一扫

PTA作业集

北邮郭大宝 2022-04-27 阅读 54
c语言

#include<stdio.h>
int main()
{
 int N,i=0,sum=0;
 scanf("%d",&N);
 while(N!=0)
 {
  sum+=N%10;
  i++;
  N=N/10;
 }
 printf("%d %d",i,sum);
 return 0;
}//7-5 最大公约数和最小公倍数

#include<stdio.h>//7-6 求整数的位数及各位数字之和
int main()
{
 int N,i=0,sum=0;
 scanf("%d",&N);
 while(N!=0)
 {
  sum+=N%10;
  i++;
  N=N/10;
 }
 printf("%d %d",i,sum);
 return 0;
}
//7-7 兔子繁衍问题
#include <stdio.h>
 
int main()
{
    int tuzi,n,a=1,b=1;
    int month=2;
    scanf("%d",&n);
    if(n==1)
    {
        month=1;
    }
    else
    {
        for(tuzi=1; tuzi<n; )
        {
            tuzi=a+b;
            a=b;
            b=tuzi;
            month++;
        }
    }
    printf("%d",month);
}

//7-8 统计素数并求和
int main()
{
    int m,n;
    int i;
    int cnt=0;
    int sum=0;
    scanf("%d%d",&m,&n);
    if(m==1)
       m=2;
    for(i=m;i<=n;i++){
        int isPrime=1;
        int k;
        for(k=2;k<i-1;k++){
            if(i%k==0){
                isPrime=0;
                break;
            }
        }
        if(isPrime){
            cnt++;
            sum+=i;
        }
    }
    printf("%d %d\n",cnt,sum);
    return 0;
}
//7-9 换硬币
#include <stdio.h>
int main () {
int x, count = 0;
scanf("%d", &x);
for ( int k = x / 5; k > 0; k-- )
for ( int i = x / 2; i > 0; i-- )
for ( int j = x; j > 0; j-- )
if ( k * 5 + i * 2 + j == x) 
    {
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", k, i, j, k + j + i);
count++;
                }
    printf("count = %d",count);
    return 0;
}
//7-10 输出三角形字符阵列
#include<stdio.h>
int main()
{
    int a,c,x,i,n;
    char m='A';
    scanf("%d",&a);
    x=a;
    for(i=1;i<=a;i++)
    {
        
        for(c=1;c<=x;c++)
        {
            printf("%c ",m);
            m++;
        }
        x=x-1; 
        printf("\n");
    }
}
//7-5 输出整数各位数字
#include<stdio.h>
int main() {
    int n, t;
    int m = 1;
    scanf("%d", &n);
    t = n;

    while (t / 10 != 0) {

        m *= 10;
        t /= 10;         
    }
    while (m != 0) {

        printf("%d ", n / m);    
        n %= m;                
        m /= 10;               
    }                            

    return 0;
}
//7-9 验证“哥德巴赫猜想
#include<stdio.h>
int isPrime(int x) {
    int isPrime = 1;
    if (x == 1 || x % 2 == 0 && x != 2) isPrime = 0;
    else {
        for (int i = 3; i <= sqrt(x); i += 2) {
            if (x % i == 0) {
                isPrime = 0;
                break;
            }
        }
    }
    return isPrime;
}
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 2; i <= n / 2; i++) {
        if (isPrime(i) && isPrime(n - i)) {
            printf("%d = %d + %d\n", n, i, n - i);
            break;
        }
    }
    return 0;
}
//7-10 找完数
#include<stdio.h>
int main(){
    int n,m,i,j,sum,num=0;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++){
        if(i==1) continue;    //1不是完数 
        sum=1;
        for(j=2;j<i;j++)    //因子数之和 
            if(i%j==0) sum+=j;
        if(sum==i){        //之和相等,既是完数 
            printf("%d = 1",i);    //每一项都有1
            for(j=2;j<i;j++)    
                if(i%j==0) 
                    printf(" + %d",j);    //之后再加上后面的因子 
            printf("\n");
            num++;
        }
    }
    if(num==0) printf("None\n"); //num是用来统计出现的完数个数 
    return 0;

//6-3 符号函数

//6-10 统计某数每一位数字的偶数和
int Count_Digit ( const int N )
{
    int oddsum,a,b;
    oddsum = 0;
    a = N;
    if(a<0)
    {
        a = -a;
    }
    while(a>0)
    {
        
        b = a%10;
        if(b%2==0)
        {
            oddsum+=b;
        }
        a /= 10;
    }
    return oddsum;
}
//7-3 求满足条件的斐波那契数

#include<stdio.h>
int fib(int n);
int main(){
int i,n;
scanf("%d",&n);
for(i=1;;i++){
    if(fib(i)>n){
        printf("%d",fib(i));
        break;
    }
}
return 0;
}
int fib(int n){
    if(n<=2){
        return 1;
    }else{
        return fib(n-1)+fib(n-2);
    }
}
//7-4 统计素数并求和
#include <stdio.h>
#include <math.h>
int main()
{
    int i, j, m, n, sum = 0, count = 0;
    scanf("%d %d", &m, &n);
    for(i = m; i <= n ; i++)
    {
        for(j = 2; j <= i; j++)
        {
            if(i % j == 0)
            {
                break;
            }
        }
        if(i == j)
        {
            sum += j;
            count++;
        }
    }
    printf("%d %d", count, sum);
    
    return 0; 
}
//7-5 判断素数
#include <stdio.h>
#include <math.h>
int main()
{
    int i, j, n, a;
    scanf("%d", &n);
    for(i = 0; i < n; i++)
    {
        scanf("%d", &a);
        if(a == 1)
            printf("No\n");
        
        else
        {
            for(j = 2; j <= sqrt(a); j++)
            {
                if(a % j == 0)
                {
                    break;
                }
            }
            if(j > sqrt(a))
                printf("Yes\n");
            else 
                printf("No\n");
        }
    }

    return 0;
}

举报

相关推荐

0 条评论