4.20打卡

发布时间 2023-04-21 01:11:22作者: jiuxiao
一、

给定 n 个整数 �1,�2,⋅⋅⋅,��a1,a2,,an ,求它们两两相乘再相加的和,即:

�=�1⋅�2+�1⋅�3+⋯+�1⋅��+�2⋅�3+⋯+��−2⋅��−1+��−2⋅��+��−1⋅��S=a1a2+a1a3++a1an+a2a3++an2an1+an2an+an1an

输入格式

输入的第一行包含一个整数 n。

第二行包含 n 个整数 �1,�2,⋯,��a1,a2,,an

输出格式

输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。

#include <stdio.h>
int main(int argc, char *argv[])
{
  long int a[200000]={0};
  long int n=0,i=0,k=0;
  scanf("%ld",&n);
  long int s=0;
  for(i=1;i<=n;i++){
    scanf("%d",&a[i]);
  }  
  for(i=1;i<n;i++){
    k+=a[i];
    s+=a[i+1]*k;
  }
  printf("%ld",s);
  return 0;
}
二、

小明用字母 A 对应数字 11,B 对应 22,以此类推,用 Z 对应 2626。对于 2727 以上的数字,小明用两位或更长位的字符串来对应,例如 ��AA 对应 2727,��AB 对应 2828,��AZ 对应 5252,��LQ 对应 329329。

请问 20192019 对应的字符串是什么?

#include <stdio.h>

void calc(int a) {
    if (a > 26)
        calc(a / 26);
    printf("%c", 'A' + (a % 26) - 1);
}

int main() {
    calc(2019);
    return 0;
}
三、
aaa 个蛋挞,分给 bbb 个人,使得每个人分得蛋挞数量一样且尽量多。这样会导致可能有一些蛋挞没被分走,导致浪费,于是牛牛准备回收这些蛋挞并一口吃下全部。牛牛想知道是自己吃的多还是分蛋挞的每个人吃得多?

如果牛牛吃得多,输出 "niuniu eats more than others",如果分蛋挞的每个人吃得多,输出 "niuniu eats less than others",如果一样多输出 "same"(均不含引号)。

#include<iostream>
using namespace std;
int main(){
int sum,over,niuniu;
long long a,b;
cin >> a >> b;
over=a/b;
sum = over*b;
niuniu=a-sum;
if(niuniu>over) cout << "niuniu eats more than others";
if(niuniu<over) cout << "niuniu eats less than others";
if(niuniu==over) cout << "same";
}