PTA基础编程题目集(四)

直接插入排序,希尔排序

求大数阶乘:

// 1000 的阶乘 2568 位
#include <stdio.h>  

int a[3000];  

void show(int k)
{
    int i=0;
    printf("位数 %d 位\n",k);
    for (i=k-1; i>=0; i--)
    {
        printf("%d",a[i]);
    }
}  

int fanc(int n)
{
    int w=0;
    int i=0, j=0;
    int t=n;
    int k=0;    // 表示数据的位数。
    while(t)
    {
        a[i++] = t%10;
        t/=10;
        k++;
    }  

    for (j=n-1; j>1; j--)
    {
        w=0;    // 表示进位
        for (i=0; i<k; i++)
        {
            t = a[i]*j+w;
            a[i] = t%10;
            w = t/10;
        }  

        while(w)
        {
            a[i++] = w%10;
            w/=10;
            k++;
        }
    }
    return k;
}
int main()
{
    int n;
    int k=0;  

    scanf("%d",&n);
    k = fanc(n);
    show(k);
    printf("\n");
    return 0;
} 

原文地址:https://www.cnblogs.com/jianqiao123/p/12041652.html

时间: 2024-11-06 11:32:44

PTA基础编程题目集(四)的相关文章

PTA基础编程题目集——爬动的蠕虫

原题链接https://pintia.cn/problem-sets/14/problems/797 这题一开始考虑时犯了一些错误,一开始是这样考虑的,按题目的意思,每2分钟蠕虫爬行的距离是(U-D)寸.那么平均每分钟爬行的距离是(U-D+1)/2寸.然后对照样例数据N=12,U=3,D=1算出需要8分钟爬完,当然这个结果是错的.调整一下思路,假设时间为t,爬行距离为s.当t=0时,s=0:当t=1时,s=U:当t=2时,s=U-D:当t=3时,s=U-D+U:当t=4时,S=U-D+U-D:.

PTA 基础编程题目集 -函数12题

 4-1 简单输出整数   (10分) void PrintN(int N) { int i,sum=0; for(i=1; i<=N; i++) printf("%d\n",i); } 4-2 多项式求值   (15分) double f( int n, double a[], double x ) { int i; double sum; for(i=0; i<=n; i++) { if(i==0) sum+=a[i]; else if(i==1) sum+=a[i

PTA基础编程题目集7-1厘米换算英尺英寸

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048.现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸. 输入格式: 输入在一行中给出1个正整数,单位是厘米. 输出格式: 在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开. 输入样例: 170 输出样例: 5 6 1 #include <stdio.h> 2 int main(int argc, char const *arg

PTA基础编程题目集6-3简单求和 (函数题)

6-3 简单求和 (10 分) 本题要求实现一个函数,求给定的N个整数的和. 函数接口定义: int Sum(int List[],int N) 其中给定整数存放在数组List[]中,正整数N是数组元素个数.该函数须返回N个List[]元素的和. 裁判测试程序样例: #include <stdio.h> #define MAXN 10 int Sum ( int List[], int N ); int main (){ int List[MAXN], N, i; scanf("%d

PTA基础编程题目集6-7 统计某类完全平方数 (函数题)

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ( const int N ); 其中N是用户传入的参数.如果N满足条件,则该函数必须返回1,否则返回0. 裁判测试程序样例: #include <stdio.h> #include <math.h> int IsTheNumber ( const int N ); int main() { int n1, n2, i,

【编程题目】四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())

46.搜狐(运算):四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) 跟12个人排高矮的题目差不多. 用 0 表示 “(”,用 1 表示“)” 则需要数字二进制最低8位有 4个1和 4个0,且从低位到高位对1 和 0 计数时,0 出现的次数不能超过 1 出现的次数. /* 46.搜狐(运算): 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) */ #include <stdio.h> int c_bits(int n) { int re

大数据学习初体验:Linux学习+Shell基础编程+hadoop集群部署

距离上次博客时间已经9天,简单记录下这几天的学习过程 2020-02-15 10:38:47 一.Linux学习 关于Linux命令,我在之前就已经学过一部分了,所以这段时间的linux学习更多的是去学习Linux系统的安装以及相关配置多一些,命令会一些比较常用的就够了,下面记录下安装配置Linux系统时的注意事项. 这里配置的虚拟机的内存为4g 使用的 CentOS-6.5-x86_64-minimal.iso 映射文件 在进入linux系统中时,需要将虚拟机的主机名修改成自己想要的名字,还要

Go基础编程实践(四)—— Map和数组

数组去重 package main import "fmt" func main(){ intSlice := []int{1,5,5,5,5,7,8,6,6, 6} fmt.Println(intSlice) uniqueIntSlice := unique(intSlice) fmt.Println(uniqueIntSlice) } func unique(intSlice []int) []int{ keys := make(map[int]bool) uniqueElemen

PTA数据结构与算法题目集(中文) 7-14

PTA数据结构与算法题目集(中文)  7-14 7-14 电话聊天狂人 (25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔. 输出格式: 在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔.如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并列狂人的人数. 输入样例: 4 130057