diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-06-08 17:10:31 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-06-08 17:10:31 +0800 |
| commit | 72af0dedf9e18911da65b9a5c4906689e868d9fc (patch) | |
| tree | 2ecbad93f96ab8ad7e26dc02cd02d802f853ab97 /rcc-legacy/tests/upload/test1_1.sy | |
| parent | 8faf6d290d6703b1775e0ad7a8928a4ebea4b11b (diff) | |
| download | rcc-project-72af0dedf9e18911da65b9a5c4906689e868d9fc.tar.gz rcc-project-72af0dedf9e18911da65b9a5c4906689e868d9fc.tar.xz | |
[legacy] Add functional and performance test suites
Diffstat (limited to 'rcc-legacy/tests/upload/test1_1.sy')
| -rw-r--r-- | rcc-legacy/tests/upload/test1_1.sy | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/rcc-legacy/tests/upload/test1_1.sy b/rcc-legacy/tests/upload/test1_1.sy new file mode 100644 index 0000000..3dc1d51 --- /dev/null +++ b/rcc-legacy/tests/upload/test1_1.sy @@ -0,0 +1,105 @@ +int a[1000];
+int b[1000];
+int c[1000];
+int lena;
+int lenb;
+int lenc;
+
+
+void add() { //b=b+a
+ int i;
+
+ if (lena>lenb) {
+ lenc = lena;
+ }
+ else{
+ lenc = lenb;
+ }
+ i=0;
+ while (i<=lenc) {
+ c[i] = 0;
+ i=i+1;
+ }
+ i=0;
+ while (i<lenc) {
+ c[i] = c[i] + (a[i] + b[i]);
+ if (c[i] >= 10) {
+ c[i+1] = c[i+1] + 1;
+ c[i] = c[i] - 10;
+ }
+ i=i+1;
+ }
+ if (c[lenc]) { //有进位 数组c的长度+1
+ lenc = lenc+1;
+ }
+ //b<-c
+ i=0;
+ while (i<lenc) {
+ b[i] = c[i];
+ i=i+1;
+ }
+ lenb = lenc;
+}
+
+
+void mult(int n) { //a=a*n n最大50,位数=lena+2
+ int i;
+
+ i=0;
+ while (i<=lena+2) {
+ c[i] = 0;
+ i=i+1;
+ }
+ lenc = lena;
+ i=0;
+ while (i<lenc) {
+ c[i] = c[i] + a[i] * n;
+ if (c[i] >= 10) {
+ c[i+1] = c[i+1] + (c[i] / 10);
+ c[i] = c[i] % 10;
+ }
+ i=i+1;
+ }
+ //最高位的值可能>=10 要展开成多位
+ while (c[lenc] >= 10) {
+ c[lenc+1] = c[lenc+1] + (c[lenc] / 10);
+ c[lenc] = c[lenc] % 10;
+ lenc = lenc+1;
+ }
+ if (c[lenc]) { //0<最高位<=10 也要长度+1
+ lenc = lenc+1;
+ }
+ //a<-c
+ i=0;
+ while (i<lenc) {
+ a[i] = c[i];
+ i=i+1;
+ }
+ lena = lenc;
+}
+
+int main()
+{
+ int n;
+ int i;
+
+ n = getint();
+ a[0] = 1; //a=1
+ lena = 1;
+ b[0] = 0; //b=0
+ lenb = 1;
+
+ i=1;
+ while (i<=n) {
+ mult(i); //a=a*i
+ add(); //b=b+a
+ i=i+1;
+ }
+ i=lenb-1;
+ while (i>=0) {
+ putint(b[i]);
+ i=i-1;
+ }
+ putch(10);
+ return 0;
+}
\ No newline at end of file |
