http://acm.hdu.edu.cn/showproblem.php?pid=2022

1个回答

Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 187350 Accepted Submission(s): 46661 Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). Input The input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed. Output For each test case, print the value of f(n) on a single line. Sample Input 1 1 3 1 2 10 0 0 0 Sample Output 2 5 Author CHEN, Shunbao Source ZJCPC2004 **代码如下：** import java.util.*; public class Main{ private static Scanner in; public static void main(String[] args) { in = new Scanner(System.in); while(in.hasNext()) { int A = in.nextInt(); int B = in.nextInt(); int n = in.nextInt(); int []a = new int[n+2]; a[1] = 1; a[2] = 1; if(n==1||n==2) { System.out.println(1);; } if(A==0&&B==0&&n==0) { continue; } if(A<1&B>1000&n>1000000000) { System.exit(0); } else if(A>=1&&B<=1000&&n>=3&&n<=1000000000) { for(int t = 3;t<=n;t++) { a[t] = ((A*a[t-1])+(B*a[t-2]))%7; if(t==n) { System.out.println(a[t]); } } } } } } 我输入0 0 0时eclipse显示错误；不明白怎么改，求大神帮忙

hdu杭电oj第1248题 为什么总是wrong
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int t,n,i,j; int a[7]; int b[350]; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%d",&n); a[1]=n%150; a[1]=a[1]%200; a[1]=a[1]%350; a[2]=n%150; a[2]=a[2]%350; a[2]=a[2]%200; a[3]=n%200; a[3]=a[3]%150; a[3]=a[3]%350; a[4]=n%200; a[4]=a[4]%350; a[4]=a[4]%150; a[5]=n%350; a[5]=a[5]%200; a[5]=a[5]%150; a[6]=n%350; a[6]=a[6]%150; a[6]=a[6]%200; for(i=1;i<=6;i++) b[a[i]]=1; for(j=0;j<350;j++) { if(b[j]!=0) { printf("%d\n",j); break; } } } } 上面是我的代码 我知道很水。。。但是编译输出答案都没有问题啊 为什么总是wa 求大神指教

Problem Description The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two or more digits, those digits are summed and the process is repeated. This is continued as long as necessary to obtain a single digit. For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24. Now consider the positive integer 39. Adding the 3 and the 9 yields 12. Since 12 is not a single digit, the process must be repeated. Adding the 1 and the 2 yeilds 3, a single digit and also the digital root of 39.   Input The input file will contain a list of positive integers, one per line. The end of the input will be indicated by an integer value of zero.   Output For each integer in the input, output its digital root on a separate line of the output.   Sample Input 24 39 0   Sample Output 6 3 这是我的程序，C语言的: #include <stdio.h> #include <math.h> void calculate(int x){ int digit = 1; int i = 1; int newx = 0; while(x / pow(10,i) != 0){ digit++; } for(int j = digit;j > 0;j--){ newx += (int)(x % pow(10,j)); x = x / pow(10,j); } if(newx / 10 == 0 ) printf("%d",newx); else { x = newx; calculate(x); } } int main(){ int num; int digit = 1; int i = 1; scanf("%d",&num); calculate(num); return 0; } 出错信息贴在下面

#include "stdio.h" int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0; } 运行不是好好的吗，怎么总是过不了

#include "stdio.h" int main() { int n,sum=1,i; while( scanf("%d",&n)!=EOF) { if( n<=1 || n>=30 ) break; else { for( i=n; i>0; i-- ) { sum = (sum+1)*2; } } printf("%d\n",sum); } }

#include<iostream> #include<iomanip> #include<queue> using namespace std; typedef pair<int, int>p; char migong[100][100];//迷宫 int bj[100][100];//迷宫每到达每一个位置所要的步数 int zx[100][100];//到达每一个位置所进行的转向的次数 p zhuangtai[100][100];//记录每一个位置的状态，方便做是否转向的判断 const int M = 100000; int n, m;//迷宫的大小 int sx, sy;//迷宫的起点 int dx, dy;//迷宫的终点 int k; //k表示转向的最大次数 void show() { int i, j;/* for (i = 0; i < n; i++) { for (j = 0; j < m; j++) cout <<setw(10)<< bj[i][j] << " "; cout << endl; } cout << endl;*/ for (i = 0; i < n; i++) { for (j = 0; j < m; j++) cout << setw(8) << zx[i][j] << " "; cout << endl; } cout << endl; } bool bfs() { queue<p> pp; pp.push(p(sx, sy)); bj[sx][sy] = 0; zx[sx][sy] = -1;//起点处的转弯次数为-1，这样走出的第一步转弯次数为0 zhuangtai[sx][sy] = p(0, 0); while (pp.size()) { //show(); int x = pp.front().first; int y = pp.front().second; if (pp.front().first == dx&&pp.front().second == dy&&zx[x][y]<=k) { //cout << "到达终点，并且转弯次数没有超限" << endl; return true; } /*if (pp.front().first == dx&&pp.front().second == dy) { cout << zx[pp.front().first][pp.front().second] << endl; cout << "到达终点，但是转弯次数超限" << endl; }*/ int a[4] = { 0, 0, 1, -1 }, b[4] = { 1, -1, 0, 0 }; int i; for (i = 0; i < 4; i++) { int tempx = x + a[i]; int tempy = y + b[i]; if (migong[tempx][tempy] == '.' && 0 <= tempx&&tempx < n && 0 <= tempy&&tempy < m && ((bj[tempx][tempy] > bj[x][y]&&zx[tempx][tempy]>zx[x][y]) || zx[tempx][tempy] > zx[x][y])) { bj[tempx][tempy] = bj[x][y] + 1; zhuangtai[tempx][tempy] = p(tempx-x, tempy-y); if (p(tempx - x, tempy - y) != zhuangtai[x][y]) { zx[tempx][tempy] = zx[x][y] + 1; } else zx[tempx][tempy] = zx[x][y]; pp.push(p(tempx, tempy)); } } pp.pop(); } return false; } int main() { int z; cin >> z; while (z--) { //int n, m; cin >> n >> m; int i, j; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { cin >> migong[i][j]; bj[i][j] = M; zx[i][j] = M; } } cin >> k >> sy >> sx >> dy >> dx; sy--; sx--; dy--; dx--; if (migong[sx][sy] == '*'){ cout << "no" << endl; continue; } if (bfs()) cout << "yes" << endl; else cout << "no" << endl; } return 0; } 下面是题目： Problem Description 　　给定一个m × n (m行, n列)的迷宫，迷宫中有两个位置，gloria想从迷宫的一个位置走到另外一个位置，当然迷宫中有些地方是空地，gloria可以穿越，有些地方是障碍，她必须绕行，从迷宫的一个位置，只能走到与它相邻的4个位置中,当然在行走过程中，gloria不能走到迷宫外面去。令人头痛的是，gloria是个没什么方向感的人，因此，她在行走过程中，不能转太多弯了，否则她会晕倒的。我们假定给定的两个位置都是空地，初始时，gloria所面向的方向未定，她可以选择4个方向的任何一个出发，而不算成一次转弯。gloria能从一个位置走到另外一个位置吗？   Input 　　第1行为一个整数t (1 ≤ t ≤ 100),表示测试数据的个数，接下来为t组测试数据，每组测试数据中， 　　第1行为两个整数m, n (1 ≤ m, n ≤ 100),分别表示迷宫的行数和列数，接下来m行，每行包括n个字符，其中字符'.'表示该位置为空地，字符'*'表示该位置为障碍，输入数据中只有这两种字符，每组测试数据的最后一行为5个整数k, x1, y1, x2, y2 (1 ≤ k ≤ 10, 1 ≤ x1, x2 ≤ n, 1 ≤ y1, y2 ≤ m),其中k表示gloria最多能转的弯数，(x1, y1), (x2, y2)表示两个位置，其中x1，x2对应列，y1, y2对应行。   Output 　　每组测试数据对应为一行，若gloria能从一个位置走到另外一个位置，输出“yes”，否则输出“no”。   Sample Input 2 5 5 ...** *.**. ..... ..... *.... 1 1 1 1 3 5 5 ...** *.**. ..... ..... *.... 2 1 1 1 3

#include "stdio.h" int main() { int x,y,n,j,s; while( scanf("%d%d",&x,&y)!=EOF) { if( x==0 && y==0 ) break; else { for( n=x; n<=y; n++ ) { s=n*n+n+41; for( j=2; j<=s/2; j++ ) { if( s%j==0 ) { printf("Sorry\n"); break; } } } } printf("OK\n"); } }

#include "stdio.h" int main() { char max,x,y,z; scanf("%c%c%c",&x,&y,&z); while( scanf(%c%c%c,&x,&y,&z)!=EOF) { if( 'x'>'y' ) if( 'y'>'z') printf("%c %c %c\n",z,y,x); else if( 'x'>'z' ) printf("%c %c %c\n",y,z,x); else printf("%c %c %c\n",y,z,x); else if( 'y'<'z' ) printf("%c %c %c\n",x,y,z); else if( 'x'>'z' ) printf("%c %c %c\n",z,x,y); else printf("%c %c %c\n",x,z,y); } return 0; }

#include "stdio.h" int main() { int n,m,i,j,s=-1; float sum=0; while(scanf("%d",&m)!=EOF) { for( i=1; i<=m; i++ ) { scanf("%d",&n); for( j=1; j<=n; j++ ) { sum=0; s*=-1; sum+=(float)s*1/j; } printf("%.2f\n",sum); } } }

A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). 超过49个数之后一定会出现和之前的数组合相同的情况，这个我可以了解，但是 为什么最多经过49个数之后一定会出现周期呢？智商太低了，跪求解释

Java学习的正确打开方式

《奇巧淫技》系列-python！！每天早上八点自动发送天气预报邮件到QQ邮箱

Python 植物大战僵尸代码实现(2):植物卡片选择和种植

YOLO 是我非常喜欢的目标检测算法，堪称工业级的目标检测，能够达到实时的要求，它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置，当然，也能预测物体的类别。 之前我有写博文介绍过它，但是每次重新读它的论文，我都有新的收获，为此我准备写一个系列的文章来详尽分析它。这是第一篇，从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址：https://www.c

20行Python代码爬取王者荣耀全英雄皮肤

TCP/IP协议是传输层协议，主要解决数据如何在网络中传输，而HTTP是应用层协议，主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接；TCP则提供面向连接的服务； 2. 是否需要给出确认 对方的传输层在收到UDP报文后，不需要给出任何确认，而 TCP需要给出确认报文，要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...

2019年互联网寒冬，大批企业开始裁员，下图是网上流传的一张截图： 裁员不可避免，那如何才能做到不管大环境如何变化，自身不受影响呢？ 我们先来看一个有意思的故事，如果西游记取经团队需要裁员一名，会裁掉谁呢，为什么？ 西游记团队组成： 1.唐僧 作为团队teamleader，有很坚韧的品性和极高的原则性，不达目的不罢休，遇到任何问题，都没有退缩过，又很得上司支持和赏识(直接得到唐太宗的任命，既给

Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.

（经验分享）作为一名普通本科计算机专业学生，我大学四年到底走了多少弯路

Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型？ 3、使用 Redis 有哪些好处？ 4、Redis 相比 Memcached 有哪些优势？ 5、Memcache 与 Redis 的区别都有哪些？ 6、Redis 是单进程单线程的？ 7、一个字符串类型的值能存储最大容量是多少？ 8、Redis 的持久化机制是什么？各自的优缺点？ 9、Redis 常见性...

【设计模式】单例模式的八种写法分析

《面试宝典》：检验是否为合格的初中级程序员的面试知识点，你都知道了吗？查漏补缺