zoukankan      html  css  js  c++  java
  • nyoj_216_A problem is easy_201312051117

    A  problem is easy

    时间限制:1000 ms  |           内存限制:65535 KB
    难度:3
     
    描述
    When Teddy was a child , he was always thinking about some simple math problems ,such as “What it’s 1 cup of water plus 1 pile of dough ..” , “100 yuan buy 100 pig” .etc..
    One day Teddy met a old man in his dream , in that dream the man whose name was“RuLai” gave Teddy a problem :
    Given an N , can you calculate how many ways to write N as i * j + i + j (0 < i <= j) ?
    Teddy found the answer when N was less than 10…but if N get bigger , he found it was too difficult for him to solve. Well , you clever ACMers ,could you help little Teddy to solve this problem and let him have a good dream ?
     
    输入
    The first line contain a T(T <= 2000) . followed by T lines ,each line contain an integer N (0<=N <= 10^11).
    输出
    For each case, output the number of ways in one line
    样例输入
    2
    1
    3
    样例输出
    0
    1
    上传者
    苗栋栋
     1 #include <stdio.h>
     2 #include <math.h>
     3 
     4 int main()
     5 {
     6     int T;
     7     scanf("%d",&T);
     8     while(T--)
     9     {
    10         int i,j,t,n;
    11         int num=0;
    12         scanf("%d",&n);
    13         for(i=1;i<=sqrt((double)n)+1;i++)
    14         {
    15             if((n-i)%(i+1)==0)
    16             if((n-i)/(i+1)>=i)
    17             num++;
    18         }
    19         printf("%d
    ",num);
    20     }
    21     return 0;
    22 }

    优秀代码:

    #include<cstring>
    
    #include<cstdio>
    
    #include<map>
    
    #include<string>
    
    #include<algorithm>
    
    #include<vector>
    
    #include<iostream>
    
    #include<cmath>
    
    using namespace std;
    
    #define CLR(arr,val) memset(arr,val,sizeof(arr))
    
     
    
    int main()
    
    {
    
    int t,n,cnt=0;
    
    //long long num;
    
    int num;
    
    scanf("%d",&t);
    
    while(t--)
    
    {
    
    //  scanf("%lld",&num);
    
    scanf("%d",&num);
    
    int nn=(int)(sqrt(num+1.0)+0.5);
    
    num++;
    
    cnt=0;
    
    for(int i=2;i<=nn;i++)
    
    if(num%i==0) cnt++;
    
    printf("%d
    ",cnt);
    
    }
    
     
    
    }


    简单数学题

  • 相关阅读:
    在sql中日期转化
    SQL Server标准版企业版个人版区别
    Oracle 9i默认用户
    SQL Server和Oracle的常用函数对比
    Delphi6函数大全
    Oracle 不支持 TOP 关键字
    c#连接数据库
    VC6安装及打开工程文件问题的解决
    error C4430: 缺少类型说明符 假定为 int。注意: C++ 不支持默认 int
    VC++ dll导出类
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3459189.html
Copyright © 2011-2022 走看看