【菜鸟求助】ACM题目:Integer Inquiry

作者&投稿:贸版 (若有异议请与网页底部的电邮联系)
【求助】ACM题目:Integer Inquiry~

是不是你后面那几个从100 downto 1 的循环有问题?题目中只说了输入数据的长度,但没有说答案的长度不超过100吧
写高精度Java最方便,给你一分我写的1503:
import java.math.*;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner (System.in);
BigInteger t,sum=BigInteger.ZERO;
t=cin.nextBigInteger();
while(t.compareTo(BigInteger.ZERO)!=0)
{
sum=sum.add(t);
t=cin.nextBigInteger();
}
System.out.println(sum);
}
}

  是不同的系列 ACM全称是Amateur college men,CFS全称是Corbin fisher select,ACS全称是Amateur college sex 简单概括就是ACM是非专业演员的 CFS是专业演员的 ACS是男女非专业演员的

你的代码在判断最高位上有问题
比如
9
90
999
0

你的代码输出98
正确答案应该是1098

不好意思,我的代码是直接贴的下面这题AC的代码
http://acm.hdu.edu.cn/showproblem.php?pid=1047
这题一开始输入了例子个数
杠掉前三行就行了
我现在身边没有编译器,不过我估计你改了后无法避免输出前面的无效零
比如
0009
9
9
你会输出多余的0

这是我的代码

#include<stdio.h>
#include<string.h>
char s[200];
int t[200];
int n,l,i,j,ll;
bool first=1;
int main()
{
//scanf("%d",&n);
// while (n--)
{
// if (first) first=0; else

memset(t,0,sizeof t);
ll=1;
while (scanf("%s",s)==1)
{
l=strlen(s);
if (l==1&&s[0]==48) break;
for (i=l-1,j=0;i>=0;i--,j++)
{
t[j]+=s[i]-48;
if (t[j]>9)
{
t[j]-=10;
t[j+1]++;
}
}
while (t[j]>0)
{
if (t[j]>9)
{
t[j]-=10;
t[j+1]++;
}
j++;
}
if (j>ll) ll=j;
}
while (j>1&&t[j-1]==0) j--;
for (i=ll-1;i>=0;i--) printf("%d",t[i]);
printf("\n");
}
}

要看AC的代码不 ?


【菜鸟求助】ACM题目:Integer Inquiry
正确答案应该是1098 不好意思,我的代码是直接贴的下面这题AC的代码 http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1047 这题一开始输入了例子个数 杠掉前三行就行了 我现在身边没有编译器,不过我估计你改了后无法避免输出前面的无效零 比如 0009 9 9 你会输出多余的0 这是我的代码 include<s...

【菜鸟求助】ACM题目:Reverse Text
上面的 cin>>n; 虽然读到了所需要的数字,但是并没有把后面的那个回车从键盘缓冲区拿掉,所以实际上后面的 cin.getline(str,71); 是把那个剩余的回车读掉, 这样后面的真正需要内容才能被循环中的 cin.getline(str,71);得到.基于这个原理, 循环前面的 cin.getline(str,71); 也可由getchar();代替...

ACM上的a+b问题?提交不了啊?菜鸟求助?
include<iostream> using namespace std;int main(){ int a,b;while(cin>>a){ cin>>b;cout<<a+b<<endl;} return 0;} a+b问题有很多的,由其是在杭电上,不知道你说的是不是这个a+b

台达变频器面板上的VR是什么
+10V端子 外接模拟电压正极ACM端子 外接模拟电压负极AVI端子 外接输入 本回答由提问者推荐 举报| 评论 4 1 961579301 采纳率:15% 擅长: 暂未定制 为您推荐: 台达变频器故障代码 台达变频器面板延长线 台达变频器面板英文 台达变频器屏幕 变频器接线图 通用变频器 台达官网 变频器工作原理 台达变频...

写程序需要使用IDE吗,还是一个Vim就够了
看你的需求。有很多号称把Vim打造成IDE的,一开始我也觉得这样很酷,语法高亮,自动补全,Ag,CtrlSF,ctags,这些都很好,但我花了很多时间去搞这些配置,最后还是觉得VS最方便。。写大的工程的话,Vim其实很不方便,但如果是写ACM程序,单个文件的,就没必要开一个工程,这时一个文本编辑器足矣。如果...

全州县18052365997: 菜鸟级的acm题,兄弟们帮忙看下吧,调试正常,提交后就wrong了,谢了~ -
郗知苏迪: 照你的程序走的话 是每输入一个数据,就输出了它的结果 最后的输出就是312ajf no fi8x_a yes ff ai_2 no 你应该先把每个输入的字符串保存,再分别用你那种方法判断;把输入和输出分开就行了

全州县18052365997: acm一道题, 用C语言 求助求助 高分~~ -
郗知苏迪: 这个问题不难.先得把字符串逆置.然后c[i]=a[i]+b[i]+c[i]; 先让c字符串都是0,c[i+1]+=(a[i]+b[i])%10; 算法就是这样,很简答,看不懂,我可以发你代码.

全州县18052365997: hdu 的acm 菜鸟杯 题 目 wrong answer -
郗知苏迪: #include int main() { int m,n,a[100][100],i,j,num=0; double avestu,sum=0.00; double avecou; double barry[100]; while(scanf("%d%d",&m,&n)!=EOF) { num=0; for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i { sum=0.0; for(j=0;j sum=sum+a[i][j]; ...

全州县18052365997: 一道acm题目 -
郗知苏迪: //下面是AC的代码,用G++提交.#include #include #include #include #include #include using name...

全州县18052365997: ACM字符串题目 求代码 -
郗知苏迪: #include #define X 105 char str1[X], str2[X]; int main() { while(gets(str1) && gets(str2)) printf(strcmp(str1, str2)?"NO\n":"YES\n"); return 0; }没有账号,交不了,你先本地跑下,我直接在代码框里打的,没测过...

全州县18052365997: ACM 简单题求助(用C++).
郗知苏迪: 第二: #include<iostream> using namespace std; void func(int s[],int sum,int &max,int &min) { int i; max=s[0]; min=s[0]; for(i=1;i<sum;i++) { if(s[i]>max) max=s[i]; if(s[i]<min) min=s[i]; } } int main() { int j,su,k=0,s[64],ma,mi,out[256]; while(1) { cin>>su; ...

全州县18052365997: 这道ACM题目怎么用JAVA做出来..主要是输入格式问题:数据格式为YYYY/MM/DD组成, -
郗知苏迪: public int getDays(String date){//输入格式要求是用斜杠“/”来分隔年月日 int y = Integer.parseInt(date.substring(0,4)); int m = Integer.parseInt(date.substring(5,date.lastIndexOf("/"))); int d = Integer.parseInt(date.substring(date.lastIndexOf("/")+...

全州县18052365997: 一道简单的ACM题,却总是MLE,都快疯了,帮忙解答一下 -
郗知苏迪: 果出现内存不够的情况,唯一的可能就是你的队列消耗掉了太多内存.0<,结果肯定会远远超过int的表示范围;n≤30,n其实对应的是你程序里的num,也就是说maxsize一定是小于等于30的.但q的长度跟测试数据数量有关:先把从1到30的结果...

全州县18052365997: 编程高手请进 -
郗知苏迪: 如果你想输入 EOF, 使用 CTRL + Z 可以得到.

全州县18052365997: 【菜鸟求助】ACM题目:Reverse Text -
郗知苏迪: 这是个很古老的问题啦...原因是cin.getline是读到回车结束的,而且会把最后的回车从键盘缓冲区读掉.上面的 cin>>n; 虽然读到了所需要的数字,但是并没有把后面的那个回车从键盘缓冲区拿掉,所以实际上后面的 cin.getline(str,71); 是把那个剩余的回车读掉, 这样后面的真正需要内容才能被循环中的 cin.getline(str,71);得到.基于这个原理, 循环前面的 cin.getline(str,71); 也可由getchar();代替!!!因为 getchar(); 刚好读掉一个字符,和 cin.getline(str,71); 的作用一样!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网