| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1544 人关注过本帖
标题:萌新想请教一下各位大神们,,为什么这个不对呀 运行都是对的 但ac不了
只看楼主 加入收藏
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
结帖率:72.73%
收藏
已结贴  问题点数:10 回复次数:9 
萌新想请教一下各位大神们,,为什么这个不对呀 运行都是对的 但ac不了
是HDU的一道题  题目      
                       求数列的和

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 81964    Accepted Submission(s): 49742


Problem Description
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
 

Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
 

Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
 

Sample Input
81 4
2 2
 

Sample Output
94.73
3.41
 

Author
lcy
 

Source
C语言程序设计练习(二)




我的代码是
程序代码:
#include<stdio.h>
#include <math.h>
int main()
{
  int n,m,i,j,temp;
  double a,sum;
  while(scanf("%d %d",&m,&n)!=EOF){
  sum=m;
  for(i=0;i<n-1;i++)
  {
    a=sqrt(m);
    sum+=a;
    temp=m;
    m=a;
    a=temp;//还有 大神 这三段代码是对的吗?我是想m和a交换,但是不知道怎么写了  我感觉是错的T T请各位大佬们指导指导 谢谢!!
  }
  printf("%.2lf\n",sum);}
  return 0;
}


这个HDU的c语言基础题  还请各位大神们指导一下 不知道错在哪了  请帮忙看一下  谢谢各位大神了!!
搜索更多相关主题的帖子: Memory 平方根 Java 
2017-04-18 16:14
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
不用那么麻烦  
程序代码:
#include<stdio.h>
#include <math.h>

int main()
{
  int n,m,i;
  double sum;
  while(scanf("%d %d",&m,&n)!=EOF){
  sum=m;
  for(i=0;i<n-1;i++)
  {
      sum+=sqrt(1.0*m);
      m=sqrt(1.0*m);
  }
  printf("%.2lf\n",sum);}
  return 0;
}
至于无法AC 看看啥提示  有可能格式问题

DO IT YOURSELF !
2017-04-18 17:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
还能节省一个变量
程序代码:
#include<stdio.h>
#include <math.h>

int main()
{
  int n,m;
  double sum;
  while(scanf("%d %d",&m,&n)!=EOF){
  sum=m;
  for(;n>1;n--)
  {
      sum+=sqrt(1.0*m);
      m=sqrt(1.0*m);
  }
  printf("%.2lf\n",sum);}
  return 0;
}


 

DO IT YOURSELF !
2017-04-18 17:05
高威
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2016-6-5
收藏
得分:0 
#include<stdio.h>
#include <math.h>
#define M 2             /*定义M大小为5,可根据自己需要输入几组数据而改,下同*/
int main()
 {
   int n,m,i,j;
   int c[M][2];            /*用于存放输入的多组m.n,c[M][0]代表n,c[M][1]代表m*/
   double sum[M],temp;
   printf("请输入数据:\n");
   for(i=0;i<M;i++)
   {
       scanf("%d %d",&c[i][0],&c[i][1]);
   }
   for(i=0;i<M;i++)
   {
       sum[i]=c[i][0];
       temp=sum[i];
       for(j=1;j<c[i][1];j++)
       {
           temp=sqrt(temp);
           sum[i]=sum[i]+temp;
       }
   }
   for(i=0;i<M;i++)
   {
       printf("%.2lf\n",sum[i]);
   }
   return 0;
 }
注:我也是个新手,写的代码可能不精练,不易看懂。如果我的代码看不懂可以回我,我每天都会登一两次这个网站
2017-04-18 17:28
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 4楼 高威
一点也没看题目要求吗  得差多远啊  

DO IT YOURSELF !
2017-04-18 17:41
高威
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2016-6-5
收藏
得分:0 
回复 5楼 wp231957
我测试是对的啊,那个m不应该是多少项吗?为什么要把m取平方根呢?
2017-04-18 18:15
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
回复 2楼 wp231957
大神  谢谢大神的回答! 但是那个1.0*m我不太懂是什么意思,是把1.0*m算出来的结果转换为double类型吗?
2017-04-18 23:17
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
回复 4楼 高威
我也是新手T T。。有点看不太懂你的第一个printf输入的是什么数据,还有第一个定义的常量M为什么是2的呀,谢谢解答。

[此贴子已经被作者于2017-4-18 23:43编辑过]

2017-04-18 23:32
高威
Rank: 1
等 级:新手上路
帖 子:18
专家分:7
注 册:2016-6-5
收藏
得分:2 
回复 7楼 hisia_
M是可以变得,我是假设输入两组数据,例如:
请输入数据:
81 4
2 2
他会输出你想要的结果
2017-04-19 07:43
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
这道题 已经ac了  原因是m为double类型的~~~谢谢各位了~~
2017-04-20 20:32
快速回复:萌新想请教一下各位大神们,,为什么这个不对呀 运行都是对的 但ac不 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016352 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved