牛客题解 | 单组_spj判断数组之和

题目

题目链接

解题思路

后台有spj代码,能对同学们的输出数据进行校验,符合条件即可通过。
附赠 spj 代码

#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
using namespace std;
bool check(string &s)
{
  if(s.length()>10)
    return false;
  if(s.front()=='0')
    return false;
  for(char &c:s)
  {
    if(c=='-')
      return false;
    else if(!isdigit(c))
      return false;
  }
  return true;
}
int main(void)
{
  // 记得重命名为 checker.cc 
  ifstream in,out,user_out;
  in.open("input");
  out.open("output");
  user_out.open("user_output");
  string s;
  long long sum=0,res;
  int n,m,i;
  in>>n>>m;
  for(i=1;i<=n;++i)
  {
    if(!(user_out>>s))
      return 1;
    if(!check(s))
      return 1;
    res=stoll(s);
    sum+=res;
  }
  if(sum!=m)
    return 1;
  if(user_out>>s)
    return 1;
  return 0;
}

代码

#include <iostream>
using namespace std;
int main(void)
{
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n,m,i;
  cin>>n>>m;
  for(i=1;i<n;++i)
    cout<<"1 ";
  cout<<m-n+1;
  return 0;
}
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt(),m=sc.nextInt(),i;
        int[] a=new int[n+5];
        for(i=1;i<n;++i)
            a[i]=1;
        a[n]=m-n+1;
        for(i=1;i<=n;++i)
            System.out.print(a[i]+" ");
    }
}
n,m=map(int,input().split())

# print('1 '*(n-1)+str(m-n+1))

a=[1]*(n-1)
a.append(m-n+1)
print(' '.join(map(str,a)))

算法及复杂度

  • 算法:无。
  • 时间复杂度:O(n)
  • 空间复杂度:O(n) 。这个是牛客输入输出题单题解,欢迎大家刷牛客题库。这个是牛客输入输出题单题解,欢迎大家刷牛客题库。这个是牛客输入输出题单题解,欢迎大家刷牛客题库。这个是牛客输入输出题单题解,欢迎大家刷牛客题库。这个是牛客输入输出题单题解,欢迎大家刷牛客题库。
posted @   wangxiaoxiao  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示