[PAT]数列求和(20)

#include "stdio.h"
#include "malloc.h"
#include "math.h"
void calc(int num,int N,long *data);
int main()
{
    int N,num;
    long *result;
    scanf("%d",&num);
    scanf("%d",&N);
    result=(long *)malloc(N*sizeof(long));
    calc(num,N,result);
    return 0;
}
void calc(int num,int N,long *data)
{
    long i=0;
    long val=0;
    long dif;
    int j;
    if(num<=0||N<=0)
    {
        printf("0");
        return;
    }
    for(i=0;i<N||val>0;i++)
    {
        val=val+num*(N-i);
        dif=val%10;
        data[i]=dif;
        val=(val-dif)/10;
    }
    for(j=i-1;j>=0;j--)
    {
        printf("%ld",data[j]);
    }
}
时间: 2024-10-12 11:05:27

[PAT]数列求和(20)的相关文章

PAT 数列求和-加强版&#160;&#160;&#160;(20分)(简单模拟)

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+?+AA?A(N个A).例如A=1, N=3时,S=1+11+111=123 输入格式: 输入数字A与非负整数N. 输出格式: 输出其N项数列之和S的值. 输入样例: 1 3 输出样例: 123 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 #i

数列求和-加强版(20 分) C

习题2.3 数列求和-加强版 (20 分) 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+?+AA?A(N个A).例如A=1, N=3时,S=1+11+111=123. 输入格式: 输入数字A与非负整数N. 输出格式: 输出其N项数列之和S的值. 输入样例: 1 3 输出样例: 123 #include <stdio.h> typedef int ElementType; typedef int Position; typedef int C

UVa 1363 (数论 数列求和) Joseph&#39;s Problem

题意: 给出n, k,求 分析: 假设,则k mod (i+1) = k - (i+1)*p = k - i*p - p = k mod i - p 则对于某个区间,i∈[l, r],k/i的整数部分p相同,则其余数成等差数列,公差为-p 然后我想到了做莫比乌斯反演时候有个分块加速,在区间[i, n / (n / i)],n/i的整数部分相同,于是有了这份代码. 1 #include <cstdio> 2 #include <algorithm> 3 using namespace

7-38 数列求和-加强版

7-38 数列求和-加强版(20 分) 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+?+AA?A(N个A).例如A=1, N=3时,S=1+11+111=123. 输入格式: 输入数字A与非负整数N. 输出格式: 输出其N项数列之和S的值. 输入样例: 1 3 输出样例: 123 思路:直接用长整形累加代码简单,但是超范围了(:′⌒`),本来还试了下使用数组来进行发现还是没AC.然后换了种思路横着一个个加不行,那纵着加呢?(横纵参考下图)很完

求数列前20项之和

有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13..求出这个数列前20项之和.function text4(){ var denominator; var molecule; var i= 0,k= 1,str=""; var str1="",str2="",sum=0; for(var j=1;j<=20;j++){ //分母 denominator=i+k; i=k; k=denominator; str+=deno

2/1+3/2+5/3+8/5+13/8+…求出这个数列前20项的和

★有一个分数序列2/1+3/2+5/3+8/5+13/8+-求出这个数列前20项的和. #include<stdio.h> #include<stdlib.h> int main() { int i = 0; double x = 2.0, y = 1.0, z = 0.0; double sum = 0; for (i = 1; i <= 20; i++) { sum = sum+x / y; z = x; x = x + y; y = z; } printf("

李洪强漫谈iOS开发[C语言-051]-数列求和

// //  main.c //  53 - 数列求和 - 李洪强 // //  Created by vic fan on 16/10/15. //  Copyright ? 2016年 李洪强. All rights reserved. // #include <stdio.h> int main(int argc, const char * argv[]) { //1 ,3,5,7... //中间有多少项相加 //sum = 0 + 1; //sum = 1 + 3; //sum = 4

[华为机试练习题]51.数列求和

题目 描写叙述: 题目描写叙述 编敲代码,输入一个正整数n.求下列算式的值.要求定义和调用函数fact(k)计算k的阶乘. 1+1/2!+ .... +1/n! 计算结果保存在double类型变量中. 接口说明 原型: void GetResult(int InputNum, double *NumResult); 输入參数: Int InputNum:输入一个正整数,进行表达式计算 char *NumResult:输出表达式的值 返回值: void 练习阶段: 0基础 代码 /*-------

循环-15. 统计素数并求和(20)

1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 bool isPrime(int n){ 5 int i; 6 for(i=2;i<=sqrt(n);++i) 7 if(n%i==0) 8 break; 9 if(n>=2&&i>sqrt(n)) 10 return true; 11 else 12 return false; 13 } 14 int main(){ 1