题解

1330 条题解

  • 0
    @ 2006-04-25 16:54:46

    var

    a,b:longint;

    begin

    readln(a,b);

    writeln(a+b);

    end.

  • 0
    @ 2006-10-14 20:27:12

    此题实质上非常复杂 全面考察到了数学史和计算机史 经典代数 常用计算与输入输出等等等等知识点

    考虑到题目的所有可能性 我们应当从计算机存储的二进制的角度来逐步考虑数的表示 以字节计数,采用多字节合用的方式表示一个大整数如今已经是高级程序语言编译器轻松可以达到的目标 可是为了加强对计算机计数的了解 此题可以考虑仍以最原始的方式进行计算——并且考虑最终将二进制数转变为十进制输出的全部过程 期间还考察了对ASCII码的熟悉程度

    此题实在经典 乃居家旅行必备之良题

    ( 2006-3-19 21:00:44 )

  • 0
    @ 2006-04-15 12:07:03

    var

    x,y:longint;

    begin

    readln(x,y);

    writeln(x+y);

    end.

  • 0
    @ 2006-04-12 20:58:02

    program k;

    var a,b,c:longint;

    begin

    readln(a,b);

    c:=a+b;

    writeln(c);

    end.

  • 0
    @ 2006-03-23 17:06:49

    var

    a,b:longint;

    begin

    readln(a,b);

    writeln('A+B=',a+b);

    end.

    这样只要两个变量,节省了空间,加快了运行速度!

  • 0
    @ 2006-03-19 21:00:44

    此题实质上非常复杂 全面考察到了数学史和计算机史 经典代数 常用计算与输入输出等等等等知识点

    考虑到题目的所有可能性 我们应当从计算机存储的二进制的角度来逐步考虑数的表示 以字节计数,采用多字节合用的方式表示一个大整数如今已经是高级程序语言编译器轻松可以达到的目标 可是为了加强对计算机计数的了解 此题可以考虑仍以最原始的方式进行计算——并且考虑最终将二进制数转变为十进制输出的全部过程 期间还考察了对ASCII码的熟悉程度

    此题实在经典 乃居家旅行必备之良题

  • 0
    @ 2006-03-19 16:43:11

    program kao;

    var a,b,c:real;

    begin

    read(a,b);

    c:=a+b;

    writeln(c);

    end.

  • 0
    @ 2006-03-16 19:06:28

    var

    x,y:integer;

    s:int64;

    begin

    read(x,y);

    s:=x+y;

    write(s);

    end.

  • 0
    @ 2006-02-10 18:41:59

    var c:word;

      a,b:longint;

    begin

    c:=a+b;

    writeln(c);

    end.

  • 0
    @ 2006-02-08 14:24:58

    var c : word;

    a, b : longint;

    begin

    c:=a+b;

    writeln(c);

    end.

  • -1
    @ 2025-11-01 15:43:26
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    #define ull unsigned int
    #define N 1048576
    int memory[N],pos;
    string code[N]={
    
    };
    string readStr(int x,int y) // 从 code[x][y] 开始读取一个字符串, 读到空格为止 
    {
        pos=y;
        string ret="";
        int len=code[x].length();
        while(pos<len && code[x][pos]==' ')
        {
            ++pos;
        }
        while(pos<len && code[x][pos]!=' ')
        {
            ret=ret+code[x][pos++];
        }
        return ret;
    }
    int readInt(int x,int y)    // 从 code[x][y] 开始读取一个整数, 读到非数字为止 
    {
        pos=y;
        int ret=0, len=code[x].length();
        bool f=0;
        while(pos<len && !isdigit(code[x][pos]))
        {
            if(code[x][pos]=='-')
            {
                f=1;
            }
            ++pos;
        }
        while(pos<len && isdigit(code[x][pos]))
        {
            ret=(ret<<3)+(ret<<1)+(code[x][pos++]^48);
        }
        return f?-ret:ret;
    }
    signed main()
    {
        for(int i=0;;i=(i+1)%N)
        {
            string op=readStr(i,0);
            if(op=="input")
            {
                int x=readInt(i,pos);
                cin>>memory[x];
            }
            else if(op=="output")
            {
                string mode=readStr(i,pos);
                if(mode=="int")
                {
                    int x=readInt(i,pos);
                    cout<<memory[x];
                }
                else if(mode=="char")
                {
                    int x=readInt(i,pos);
                    cout<<char(memory[x]%128);
                }
                else
                {
                    cout<<"\n\nError: Invalid Code at i = "<<i<<"\n\n";
                    break;
                }
            }
            else if(op=="write")
            {
                int x=readInt(i,pos), y=readInt(i,pos);
                memory[x]=y;
            }
            else if(op=="copy")
            {
                int x=readInt(i,pos), y=readInt(i,pos);
                memory[y]=memory[x];
            }
            else if(op=="calc") // and or not xor add sub mul div mod
            {
                string mode=readStr(i,pos);
                int x=readInt(i,pos), y=readInt(i,pos), z=(mode=="not" ? 0 : readInt(i,pos));
                x=memory[x], y=memory[y];
                if(mode=="and")
                {
                    memory[z]=x&y;
                }
                else if(mode=="or")
                {
                    memory[z]=x|y;
                }
                else if(mode=="not")
                {
                    memory[y]=~x;
                }
                else if(mode=="xor")
                {
                    memory[z]=x^y;
                }
                else if(mode=="add")
                {
                    memory[z]=x+y;
                }
                else if(mode=="sub")
                {
                    memory[z]=x-y;
                }
                else if(mode=="mul")
                {
                    memory[z]=x*y;
                }
                else if(mode=="div")
                {
                    if(y==0)
                    {
                        cout<<"\n\nError: Division by Zero\n\n";
                        break;
                    }
                    memory[z]=x/y;
                }
                else if(mode=="mod")
                {
                    memory[z]=x%y;
                }
                else
                {
                    cout<<"\n\nError: Invalid Code at i = "<<i<<"\n\n";
                    break;
                }
            }
            else if(op=="goto")
            {
                int x=readInt(i,pos);
                i=x-1;
            }
            else if(op=="if")   // < > == <= >= !=
            {
                string mode=readStr(i,pos);
                int x=readInt(i,pos), y=readInt(i,pos), z=readInt(i,pos);
                x=memory[x], y=memory[y];
                if(mode=="<")
                {
                    if(x<y)
                    {
                        i=z-1;
                    }
                }
                else if(mode==">")
                {
                    if(x>y)
                    {
                        i=z-1;
                    }
                }
                else if(mode=="==")
                {
                    if(x==y)
                    {
                        i=z-1;
                    }
                }
                else if(mode=="<=")
                {
                    if(x<=y)
                    {
                        i=z-1;
                    }
                }
                else if(mode==">=")
                {
                    if(x>=y)
                    {
                        i=z-1;
                    }
                }
                else if(mode=="!=")
                {
                    if(x!=y)
                    {
                        i=z-1;
                    }
                }
                else
                {
                    cout<<"\n\nError: Invalid Code at i = "<<i<<"\n\n";
                    break;
                }
            }
            else if(op=="++")
            {
                int x=readInt(i,pos);
                memory[x]++;
            }
            else if(op=="--")
            {
                int x=readInt(i,pos);
                memory[x]--;
            }
            else if(op=="exit")
            {
                break;
            }
            else
            {
                cout<<"\n\nError: Invalid Code at i = "<<i<<"\n\n";
                break;
            }
        }
        return 0;
    }
    
    
  • -1
    @ 2025-07-14 22:02:27

    这题可以运用高精度加法来解决

    #include<bits/stdc++.h>
    using namespace std;
    
    string s1,s2;
    int a[1005],b[1005],c[1005];
    int lena,lenb; 
    
    int main(){
        cin>>s1>>s2;
        lena=s1.length();
        lenb=s2.length();
        for(int i=0;i<lena;i++)
            a[i]=s1[lena-1-i]-'0';
        for(int i=0;i<lenb;i++)
            b[i]=s2[lenb-1-i]-'0';
        int lenn=max(lena,lenb);
        for(int i=0;i<lenn;i++){
            c[i]+=a[i]+b[i];
            c[i+1]=c[i]/10;
            c[i]%=10;
        }
        lenn++;
        while(lenn>1 && c[lenn-1]==0)
            lenn--;
        for(int i=lenn-1;i>=0;i--)
            cout<<c[i];
        return 0;
    }
    
  • -1
    @ 2025-07-12 22:12:47

    直接上AC代码(*这道题是最水的题了*(划掉)):

    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int a, b;
        cin>>a>>b;
        cout<<a+b<< endl;
    }
    
    

    另外,欢迎参加洛谷www.luogu.com.cn

  • -1
    @ 2025-07-09 21:43:18

    这是一道非常水的~~线段树~~题目,我们可以建立一个大小为 \(3\) 的 \(w\) 数组,\(w_0\) 不用管,\(w_1\) 存 \(a\) 的值,\(w_2\) 暂时先存 \(0\)(因为在后来的更新函数把 \(2\sim2\) 的范围改为 \(b\),相当于给 \(0+b\)),建树(范围 \(1\sim2\)),更新(范围 \(2\sim2\)),最后输出查询 \(1\sim2\) 范围的和。

    #include<bits/stdc++.h>
    #define lc p<<1
    #define rc p<<1|1
    using namespace std;
    struct node{
        int l,r,sum,add;
    }tr[3*4+5];
    int w[3];
    void pushup(int p){
        tr[p].sum=tr[lc].sum+tr[rc].sum;
    }
    void pushdown(int p){
        if(tr[p].add){
            tr[lc].sum+=(tr[lc].r-tr[lc].l+1)*tr[p].add;
            tr[rc].sum+=(tr[rc].r-tr[rc].l+1)*tr[p].add;
            tr[lc].add+=tr[p].add;
            tr[rc].add+=tr[p].add;
            tr[p].add=0;
        }
    }
    void build(int p,int l,int r){
        tr[p]={l,r,w[l],0};
        if(l==r)return ;
        int mid=l+r>>1;
        build(lc,1,mid);
        build(rc,mid+1,r);
        pushup(p);
    }
    void update(int p,int l,int r,int k){
        if(l<=tr[p].l&&tr[p].r<=r){
            tr[p].sum+=(tr[p].r-tr[p].l+1)*k;
            tr[p].add+=k;
            return ;
        }
        int mid=tr[p].l+tr[p].r>>1;
        pushdown(p);
        if(l<=mid)update(lc,l,r,k);
        if(r>mid)update(rc,l,r,k);
        pushup(p);
    }
    int query(int p,int l,int r){
        if(l<=tr[p].l&&tr[p].r<=r)return tr[p].sum;
        int mid=tr[p].l+tr[p].r>>1;
        pushdown(p);
        int sum=0;
        if(l<=mid)sum+=query(lc,l,r);
        if(r>mid)sum+=query(rc,l,r);
        return sum;
    }
    int main(){
        cin>>w[1];
        w[2]=0;
        build(1,1,2);
        int b;
        cin>>b;
        update(1,2,2,b);
        cout<<query(1,1,2);
        return 0;
    }
    
  • -1
    @ 2025-04-10 20:26:57
    #include<bits/stdc++.h>
    using namespace std;
    struct sb{
        int a,b;
    };
    int main(){
        sb n;
        cin>>n.a>>n.b;
        cout<<n.a+n.b<<'\n';
    }
    
    • @ 2025-07-09 21:46:23

      结构体类型名不文明,差评 \(+\) 举报

  • -1
    @ 2025-01-23 21:02:19

    什么是一行?它(Python 3)说……
    python
    print(sum(map(int, input().split()))

  • -1
    @ 2024-12-10 22:28:18

    一道很好的 树状数组 题。

    #include <iostream>
    #include <string>
    #include <cstdio>
    using namespace std;
    
    struct Array {
        int *arr;
        int lowbit(int x) {
            return x & -x;
        }
        int getsum(int x) { //计算[1,x]区间中数列和
            int ret=0;
            while(x>0) {
                ret+=arr[x];
                x=x-lowbit(x);
            }
            return ret;
        }
        
        void plus(int x, int v) { //把第x个元素增加v
            while(x <= (int)sizeof(arr)) {
                arr[x]=arr[x]+v;
                x=x+lowbit(x);
            }
        }
        
        Array() {}
        Array(int length, int arr[]) {
            this->arr=new int[length+1];
            for(int i=1; i<=length; i++) this->arr[i]=0;
            for(int i=1; i<=length; i++) plus(i, arr[i-1]);
        }
        ~Array()=default;
    };
    
    int main() {
        Array a;
        int arr[2];
        scanf("%d%d", &arr[0], &arr[1]);
        a=Array(2, arr);
        printf("%d\n", a.getsum(2));
        return 0;
    }
    
  • -1
    @ 2024-12-09 16:51:14

    我有两篇题解:
    给新手小白的:

    #include<iostream>
    int main(){
        int a,b;
        scanf("%d %d",&a,&b);
        printf("%d",a+b);
        return 0;
    }
    

    这是给大佬的:

    #include<iostream>
    #include<string>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    const int N = 1005;
    struct bign
    {
        int len,s[N];
        bign()  {  memset(s,0,sizeof(s));  len=1;  }
        bign(int num)  {  *this=num; }
        bign(char *num) { *this=num; }
        bign operator =(int num)
        {
            char c[N];
            sprintf(c,"%d",num);
            *this=c;
            return *this;
        }
        bign operator =(const char *num)
        {
            len=strlen(num);
            for (int i=0;i<len;i++) s[i]=num[len-1-i]-'0';
            return *this;
        }
        string str()
        {
            string res="";
            for (int i=0;i<len;i++) res=(char)(s[i]+'0')+res;
            return res;
        }
        void clean()
        {
            while (len>1&&!s[len-1]) len--;
        }
        bign operator +(const bign &b)
        {
            bign c;    
            c.len=0;
            for (int i=0,g=0;g||i<len||i<b.len;i++)
            {
                int x=g;
                if (i<len) x+=s[i];
                if (i<b.len) x+=b.s[i];
                c.s[c.len++]=x%10;
                g=x/10;
            }
            return c;
        }
        bign operator -(const bign &b)
        {
            bign c;
            c.len=0;
            int x;     
            for (int i=0,g=0;i<len;i++)
            {
                x=s[i]-g;
                if (i<b.len) x-=b.s[i];
                if (x>=0) g=0;
                else{          
                    x+=10;
                    g=1;
                };
                c.s[c.len++]=x;
            }
            c.clean();
            return c;
        }
        bign operator *(const bign &b)
        {
            bign c;
            c.len=len+b.len;
            for (int i=0;i<len;i++) for (int j=0;j<b.len;j++) c.s[i+j]+=s[i]*b.s[j];
            for (int i=0;i<c.len-1;i++) { c.s[i+1]+=c.s[i]/10; c.s[i]%=10; }
            c.clean();
            return c;  
        }
        bool operator <(const bign &b)
        {
            if (len!=b.len) return len<b.len;
            for (int i=len-1;i>=0;i--)
                 if (s[i]!=b.s[i]) return s[i]<b.s[i];
            return false;
        }
        bign operator +=(const bign &b)
        {
            *this=*this+b;
            return *this;
        }
        bign operator -=(const bign &b)
        {
            *this=*this-b;
            return *this;
        }  
    };
    istream& operator >>(istream &in,bign &x)
    {
      string s;
      in>>s;
      x=s.c_str();
      return in;
    }
    ostream& operator <<(ostream &out,bign &x)
    {
        out<<x.str();
        return out;
    }
    int main(){
        bign a,b,c;
        ios::sync_with_stdio(false);
        cin>>a>>b;
        c=a+b;
        cout<<c<<endl;
        return 0;
    }
    

    希望这篇题解有助于大家!

  • -1
    @ 2024-11-09 16:36:24

    水题中的水题中的水题

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        long long a,b;
        cin>>a>>b;
        cout<<a+b;
    
        return 0;
    }
    
  • -1
    @ 2024-10-24 14:24:10
    #include<iostream>
    using namespace std;
    int main() {
        int a,b;
        cin >> a >> b;
        cout << a + b;
        return 0;
    }
    

信息

ID
1000
难度
9
分类
(无)
标签
(无)
递交数
75169
已通过
28749
通过率
38%
被复制
265